2012-11-26 36 views
0

我有一個從我寫的應用程序。這個應用程序也有一個基本上是HTTP服務器的類。我在窗體的Load函數的一個單獨的線程中啓動這個Http服務器。調用從項目中的另一個類的窗體的點擊方法

private void Form1_Load(object sender, EventArgs e) 
    { 
     HttpServer httpServer; 
     httpServer = new MyHttpServer(8080);    
     Thread thread = new Thread(new ThreadStart(httpServer.listen)); 
     thread.Start(); 
    } 

的問題,我現在是,我希望能夠觸發某些按鈕的Click事件的形式,從HttpServer類的功能在請求進來,我不能這樣做,因爲我沒有參考在HttpServer類中運行的Form1的對象。

請幫我解決這個問題。

+1

HttpServer不應該單擊按鈕。讓它生成事件。現在很容易。 –

回答

0

將你的Form1_Load方法中的代碼分解爲一個Service類。從這兩個地方調用這個公共服務類。

0

如果你沒有對錶格的參考,你可以用作爲做一個。如果你不能這樣做,由於各種原因,可以將你在表單的方法中執行的操作提取到單獨的類中,這將被系統的表單和其他組件引用。

0

您的httpserver,並有形式訂閱他們

1

如果你決定創建HttpServer類事件和訂閱它們,不要忘了事件處理程序的代碼將在另一個線程中執行,所以使用事件檢查InvokeRequired並使用Invoke/BeginInvoke表格的方法。

相關問題