[英]Run code in Background Worker
我正在嘗試使用asp.net。 我有一個很小的問題。 在我的按鈕單擊事件之一中,我有繁重的任務需要執行,這會導致問題。 我如何在后台工作程序中運行此代碼。 任何提示將不勝感激,因為我還沒有和這個后台工作者一起玩過。
這是我的后台工作者的代碼。
protected void green_button_Click(object sender, EventArgs e)
{
string stdOut = null;
string stdError = null;
string address = "192.168.1.88";
string user = "user";
string pass = "testuser";
SshExec ssh = new SshExec(address, user, pass);
green_output.Text = "Connecting...";
green_output.Text = "Connected";
ssh.Connect();
ssh.RunCommand("cfg_green " + green_textbox1.Text + " " + green_textbox2.Text + " " + green_textbox3.Text, ref stdOut, ref stdError);
green_output.Text = stdOut;
//green_output.Text = stdError;
ssh.Close();
// green_output.Text = "Disconnect";
}
一般而言,您的問題有點籠統。 不知道您的意思是WinForms中可用的后台工作者類(您的標記表示您的意思是asp.net 5)。 您真的要使用精確的此類嗎?
但我建議您使用任務。 請參閱MSDN Task Parallel Library
您可以在此處創建並等待任務。
var result = await Task.Run(() => myBackgroundWork());
此外,如果您的后台代碼支持異步(例如,網絡流量),則可以在不使用線程的情況下使simplay等待它,並使代碼異步。
例如,參見“沒有線程進行工作” 。 線程總是要付出代價的,您可能不想為此付出代價。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.