مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

salman_b

عضویت از 1396/02/18

استفاده از Thread جدای از Thread اصلی برنامه برای catch کردن Control ها در WPF

  • یکشنبه 3 دی 1396
  • 13:01
تشکر میکنم

سلام

برنامه ی من شامل چندین صفحه است که میخوام در اول برنامه load شوند و در فیلد private static page نگهداری شوند

برای اینکار Thread ای رو ایجاد میکنم و تابع مربوطه را در زمان Load شدن MainWindow فراخوانی میکنم تا عملیات مورد نظر رو انجام بده به عنوان مثال ;()MyPage1 = new AppPage1 چندین page  در این تابع به این روش مقداری دهی می شوند

ابتدا Apartment رو برای Thread روی حالت STA تنظیم می کنم و تابع مورد نظر نیز Dispatcher.Invoke می شود تا کنترل ها Load شوند، اما این کار باعث میشه تا Thread اصلی برنامه متوقف شود و منتظر پاسخ این Thread میشود، و در واقع اون همزمانی ای میخوام رو نمیتونم پیاده سازی کنم

آیا راهی هست که Control ها رو از طریق Thread ای که Thread اصلی برنامه رو دچار وقفه نکنه Update کرد ؟ چون دقیقا مشکلم اینه که تعداد صفحات زیاد و سنگین هستن و مقدار دهی اونا قبل و یا بعد از Load شدن MainWindow زمان زیادی رو میگیره شاید 5 ثانیه برنامه در حالت NotResponding قرار میگیره و اصلا خوشایند و کاربر پسند نیست، برای همین خواستم از طریق Thread جداگانه ای اونها رو حین Load شدن MainWindow مقدار دهی کنم تا Load شدنشون حس نشه

لازم به ذکر است اگر از Dispatcher.Invoke استفاده نشود، کنترل ها Initialize نمی شوند و خطای زمان اجرا داریم.

متشکرم

پاسخ های این پرسش

تعداد پاسخ ها : 0 پاسخ
در حال حاضر هیچ پاسخی ارسال نشده است
کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)