2013-10-25 46 views
1

我正在寫一個FTP客戶端庫。我的get函數應該採用以下參數:(Server IP, remotefilename, clientfilename, Applications_callback_function)作爲庫中的參數的回調函數API

我已經編寫了該庫來執行get功能,但沒有參數Applications_callback_function

期望的是寫入get API和Applications_callback_function參數,並在文件傳輸完成後調用帶有結果的回調函數,並將結果放入EventArgs

如何在C#中執行此操作?

+1

您使用委託回調參數可以做到這一點。假設庫是用C#編寫的... –

回答

2

您可以將代理人傳遞給您的get方法。試試這個:

function Get(string ServerIP, string, remotefilename, string clientfilename, Action<YourResponseType> Applications_callback_function) 
{ 
    // your logic... 
    Applications_callback_function(data_from_request); 
} 

或者,如果反應是單一類型的不是:

function Get<T>(string ServerIP, string remotefilename, string clientfilename, Action<T> Applications_callback_function) 
{ 
    // your logic... 
    Applications_callback_function(data_from_request); 
} 

// caller... 
Get<ResponseType>("127.0.0.1", "foo.txt", "bar.txt", myHandler); 

function myHandler(ResponseType data) 
{ 
    // handle response... 
} 
+0

謝謝!我喜歡在應用程序端有異步行爲。我認爲上面的代碼同步工作,這將使應用程序等待Get函數的響應。 – Ayan

+0

那麼,如果你打算將請求中的數據傳遞給回調函數呢? –

+0

Hi Rory McCrossan,我喜歡將Get函數的結果傳遞給回調函數以更新應用程序(即SUCCESS/FAILURE)。我喜歡有異議的行爲,以便應用程序可以繼續進行其他請求/操作。 – Ayan