السلام عليكم
إذا كان لدينا الفئة التالية :
public class WebTest
{
private WebBrowser _browser;
private bool _done;
public string Data;
public WebTest()
{
_browser = new WebBrowser();
_browser.DocumentCompleted += _browser_DocumentCompleted;
_browser.Url=new Uri("http://www.google.com");
while (!_done)
Thread.Sleep(50);
_browser.Dispose();
}
void _browser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
// هنا يتم الحصول على أي نص من الموقع ويوضع في الحقل Data
_done = true;
}
}هذا الجزء الأساسي من الفئة والفكرة الأساسية منها جلب نص من موقع معين وتوضع في الحقل Data
عند إنشاء كائن من هذه الفئة فإن البرنامج يتوقف عن الإستجابة والسبب في ذلك أن البرنامج لا يقوم ( كما هو متوقع ) بالدخول للدالة _browser_DocumentCompleted عند اكتمال تحميل الصفحة ويبقى معلقا في حلقة الدوران الموجودة في نهاية المشيد والسبب في ذلك أن _done لن تكون true أبدا ,
معنى ذلك حسب مافهمت من تصرف البرنامج أنه يجب تنفيذ جميع أسطر المشيد قبل الاستجابة لأي حدث .
مالسبب في هذا السلوك ؟ ومالحل ؟
