基於wcf的非同步上傳

2022-04-29 04:51:10 字數 1616 閱讀 1485

**[operationcontract]

public

void

doupload(

string

filename, 

byte

context, 

bool

//上傳目錄

string

folder ="

~/upload");

if(!system.io.directory.exists(folder))

//檔案讀寫模式

filemode m 

=filemode.create;

if//

如果引數為true則表示續傳,以追加模式操作檔案m =

//寫檔案操作

using

(filestream fs 

=new

filestream(folder +@"

\"+filename, m, fileaccess.write))

return;}

void

uploader_douploadcompleted(

object

sender, system.componentmodel.asynccompletedeventargs e)

else}}

}public

class

uploadfile

//檔案大小

public

double

size 

//已上傳

public

double

sent 

//上傳內容

public

list

<

byte

>

context }//

點選事件

void

bt_click(

object

sender, routedeventargs e)

else

byte

filebyte 

=new

byte

[b];

s.read(filebyte, 

0, b);

file.context.add(filebyte);

}s.close();

//例項化wcf客戶端

servicereference1.uploadserviceclient uploader 

=new

uploadfile.servicereference1.uploadserviceclient();

//註冊doupload完成事件

uploader.douploadcompleted 

+=new

eventhandler

<

system.componentmodel.asynccompletedeventargs

>

(uploader_douploadcompleted);

//開始第乙個包的上傳

uploader.douploadasync(file.name, file.context[

0], 

false

, file);}}

WCF中的非同步實現

目錄 wcf客戶端非同步呼叫服務 服務端的非同步實現 非同步 類的生成 1 客戶端非同步呼叫服務 客戶端非同步呼叫服務主要方式有幾種 1.1 直接呼叫非同步方法 在生成的 類中,有beginadd endadd等服務契約中定義的add操作的非同步實現。直接呼叫beginadd方法,實現客戶端非同步呼...

WCF 非同步呼叫

說明 wcf客戶端非同步呼叫與服務端 沒有關係,只是和客戶端的 有關係。服務端服務介面 using system using system.collections.generic using system.linq using system.text using system.servicemode...

WCF之非同步呼叫

非同步呼叫 獲得系統更好的吞吐量。使用者體驗性更好。但有時弄不好也會增加系統負擔。有兩種方法。我這裡只採用wshttp的方式。並且是採用新增服務引用的方法來做的。只需兩下就可以完成。1 在新增的 服務引用 上。配置 服務引用 勾選 以非同步來操作 2 它會自動新增 begin方法 和 end方法 這...