我正在尝试使用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";
}
答案 0 :(得分:0)
一般来说,你的问题有点广泛。 不确定你的意思是在WinForms中可用的后台工作者类(你的标签表示你的意思是asp.net 5)。你真的想要使用这个类吗?
但我会建议你使用任务。见MSDN Task Parallel Library
在那里你可以创建并等待任务。
var result = await Task.Run(() => myBackgroundWork());
此外,如果您的后台代码支持异步(例如网络流量),您可以简单地等待它并使您的代码不同步而不使用线程。
参见例如Doing Work without threads。 线程总是需要付出代价,你可能不想付钱。