السلام عليكم و رحمة الله و بركاته
إخواني , أرجوا أن تتحلوا بالصبر فأنا واقع بمشكلة استمرت معي أكثر من ثلاثة أشهر و لم أستطع حلها :(
لدي برنامج يؤدي عدة مهام منها ماهو متعلق بقواعد بيانات و منها ما هو متعلق بالتعديل على صفحات إنترنت و هكذا ,
يحتوي برنامجي على صورة إعلانية متغيره يتم جلبها من صفحة على الإنترنت كل دقيقة تقريباً باستخدام أداة التايمر .
تواجهني مشكلة و هي أن البرنامج يتوقف عن الاستجابة بشكل كامل في كل مرة يتم فيها تحديث هذه الصورة !!
لذا استخدمت طريقة تعدد المهام التالية /
بعد استيراد فضاء System.Threading نقوم بتعريف المتغيرات التالية
Private trd As Thread
Public Delegate Sub delegateFillTree()
ثم إضافة الإجراءات المراد تشغيلها في الخلفية و إضافة هذا الإجراء
Private Sub ThreadTask()
Dim objdelegatefilltree As delegateFillTree = AddressOf filltree
objdelegatefilltree.Invoke()
End Sub
ثم أقوم بتشغيله بهذا الكود
trd = New Thread(AddressOf ThreadTask)
trd.IsBackground = True
trd.Start()
و لكن المصيبة العظمى أنه يفيدني برسالة الخطأ التالية
ActiveX control '8856f961-340a-11d0-a96b-00c04fd705a2' cannot be instantiated because the current thread is not in a single-threaded apartment
و ذلك بحكم اني استخدم أداة التحكم WebBrowser !!!!
فبماذا تنصحونني لحل هذه المشكلة , ولكم مني دعوة بظهر الغيب .