繁体   English   中英

在后台工作程序中运行代码

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM