the_king
مدیرکل انجمن
چون thread safe بودن ربطی به تقسیم وظایف بین نخ ها نداره. thread safe به این معنا است که بشه از هر نخی به اون شیء دسترسی داشت و فرضا کنترل جدید بسازید یا مشخصه های کنترل رو تغییر بدهید.خیلی ممنون استاد
خوب اگه رندر در نخ مجزایی انجام میشه ، پس چرا مشکل با ایجاد کردنِ کنترل در نخ مجزا را داره؟
کنترل ها نه در Windows Forms و نه در WPF معماری thread safe ندارند.
در WPF صرفا رندر و نمایش به نخ دیگری واگذار شده. اون نخی که صاحب کنترل ئه همچنان تنها نخ مجاز به مدیریت کنترل ئه، thread safe نیست که شما از یک نخ دیگه هم به کنترل دسترسی پیدا کنید.
مجزا شدن رندر و نمایش هم همینطور، یک نخ مسئولیت اینکار رو برعهده داره و thread safe نیست که از نخ های دیگه ای هم بخواهید رندر کنید.
رندر در نخ مجزا به این معنی نیست که از هر نخی که دلتون خواست بتوانید کنترل بسازید یا به کنترل ها دسترسی داشته باشید یا رندر کنید و ...
نه. مساله دسترسی به کنترل ئه، حتی اگه در ظاهر و نمایش کنترل بی تاثیر باشه. اجرا کردن کد var hwnd = textBox1.Handle که تاثیری در ظاهر و رندر نداره، منجر به نمایش یا رندر که نمیشه، صرفا دسترسی ئه، همین دسترسی در نخ مجزا منجر به بروز خطا میشه.چون اگه اشتباه نکنم ، عاملی که باعث میشه با کنترل ها در نخ مجزا مشکل پیدا کنه ، رسم و رندر کنترل هست دیگه ؟
بحث هر نوع داده ای که نیست، اینکه کنترل های ویندوز thread safe نیستند که ربطی به موارد دیگه نداره.وگرنه برای ایجاد اغلب قریب به اتفاقِ اشیاهای دیگه بجز کنترل ها و اشیاء های گرافیکی ، در نخ های دیگه که مشکلی نیست .
چرا یکی از مهمترین قابلیت های WPF به شمار میره؟ چطوری قابلیت های WPF رو امتیاز بندی کرده اید که این شده جزو مهمترین قابلیت هاش؟این ، یکی از مهم ترین قابلیت های WPF به شمار میره که باعث میشه نیاز به استفاده از کنترل ها و کمپوننت های شرکت های دیگه (مثل Telerik و ...) نشه یا بصورت چشمگیری کم بشه .
مگه در Windows Forms غیر از این بوده؟ شما وقتی در OnPaint ظاهر یک کنترل Windows Forms رو تغییر می دهید منطق کنترل تحت تاثیر قرار میگیره؟
بعد چطور از این نتیجه میگیرید که نیاز به کنترل ها و کمپوننت های شرکت های دیگه نمیشه یا کم میشه؟ توضیحش چیه؟
مثلا دیگه کاربر نیازی به RadialMenu و TimeBar و PanelBar پیدا نمی کنه و خودش همه رو میسازه؟ این قابلیت های برنامه نویس یهو چطوری شکوفا میشن؟
این مورد جای بحث داره، WPF در طراحی ظاهر کاربری دلخواه قابلیت های زیادی داره اما مدت زمان لازم برای طراحیش میتونه برعکس زمانبر باشه.6) سرعت بیشتر و صرف زمان کمتر برای طراحی ظاهر کاربری دلخواه
این مساله موردی است، نمی توانید حکم کلی بدید. در هر مثال میتونه شرایط متفاوت باشه، نمی توانید کلی بگید اجرای کد ها کندتر ئه یا سریعتر.2) کندی اجرای کدها