[英]consume wcf service on separate thread
我有代表簡單的wcf客戶應用程序的獲勝形式。 該客戶端通過http使用wcf服務。
表單內部有loadingLabel.Text
屬性,我想在其中顯示loading ...文本。 當wcf服務返回數據時,應填充其他屬性labelAllBooksNr.Text
。
服務將在allBooksNumber屬性中返回整數。
private void Form1_Load(object sender, EventArgs e)
{
int allBooksNumber = BookAgent.CountAllBooks();
}
由於我沒有使用線程的經驗,因此我要求某人提供我應該遵循的最佳模式。
可以使用的最佳模式是BackgroundWorker,因為在單獨的線程上執行操作並提供了許多方法
從MSDN
當您需要響應式UI且與此類操作相關的長時間延遲時,BackgroundWorker類提供了一種便捷的解決方案。
namespace WindowsFormsApplication1
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
{
int allBooksNumber = BookAgent.CountAllBooks();
e.Result = allBooksNumber;
}
private void button1_Click(object sender, EventArgs e)
{
backgroundWorker1.RunWorkerAsync();
label1.Text = "Loading....";
}
private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
{
label1.Text = e.Result.ToString;
}
}
}”
希望這個幫助
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.