![](/img/trans.png)
[英]Using OpenNETCF.Net.Ftp inside a class instead of inside a Windows Form
[英]Using OpenNETCF.Net.Ftp inside a custom class instead of inside a Windows Form
在類而不是Windows窗體中使用OpenNETCF.Net.Ftp的精確副本
到目前為止,我正在Windows窗體內使用FTP對象。 FTP對象在單獨的線程中運行,因此為了確保我的應用程序不會凍結,我使用以下代碼:
private void OnResponse(string response)
{
if (this.InvokeRequired)
{
this.Invoke(new StringDelegate(OnResponse), new object[] { response });
return;
}
} //end of OnResponse
我不清楚什么是字符串委托,但是可以。
但是,我現在正在重構,希望將ftp隱藏到一個類中。 我的問題是如何確保主線程不會凍結? 在線上有關引發類內部事件的所有參考都是有意義的,但我還沒有找到一個應用程序是多線程的示例。 我最大的擔心是InvokeRequired。
在上面的代碼“ This”中是一種形式。 如果我將ftp對象隱藏在如下類中:
abstract class MyClass
{
//data members
private FTP _ftp;
//other data members, methods, and properties etc
}
“這”成為MyClass的對象。 我不確定是否在類上實現了InvokeRequired屬性(也許我應該使其實現具有該屬性的特殊接口?)。 或者,也許我缺少某些東西,並且我不應該在類內部使用多線程對象?
我在VS 2008中使用c#和asp.net 2.0。
InvokeRequired和Invoke僅需要在UI級別使用,以確保您不與非UI線程上的控件進行交互。 如果MyClass不是UI組件,則無需擔心。
您可能需要擔心的是MyClass與UI交互的時間。 例如,如果MyClass由於OnResponse而引發一個事件,而UI將要觀察該事件,則在UI中的事件處理程序中,您將需要使用InvokeRequired和Invoke。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.