簡體   English   中英

在自定義類而不是Windows窗體中使用OpenNETCF.Net.Ftp

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM