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

本文关键字:运行 代码 工作程序 后台 | 更新日期: 2023-09-27 17:59:50

我正在尝试使用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任务并行库

在那里,您可以创建和等待任务。

   var result = await Task.Run(() => myBackgroundWork());

此外,如果您的后台代码支持异步(例如网络流量),您可以简单地等待它,并在不使用线程的情况下使代码异步。

请参阅例如"在没有线程的情况下工作"。线程总是有代价的,你可能不想为此付出代价。