簡體   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