سلام
برنامه ی من شامل چندین صفحه است که میخوام در اول برنامه 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 نمی شوند و خطای زمان اجرا داریم.
متشکرم
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)