91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎樣給C# 中的QueueUserWorkItem傳參

發布時間:2021-09-10 16:16:27 來源:億速云 閱讀:275 作者:柒染 欄目:開發技術

怎樣給C# 中的QueueUserWorkItem傳參,針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

最近在學習citrix的xenserver6.2的源代碼,發現多處用到System.Threading命名空間下的ThreadPool.QueueUserWorkItem方法:

public static bool QueueUserWorkItem(WaitCallback callBack, object state);
publicstaticbool QueueUserWorkItem(WaitCallback callBack);

參數WaitCallback 本身是一個delegate,它在System.Threading命名空間中的定義如下:

[ComVisible(true)]
public delegate void WaitCallback(object state);

 那該如何給QueueUserWorkItem傳參呢?以下是我遇到的一些方式:

1,直接傳delegate。(不明白object o去了哪里?)

ThreadPool.QueueUserWorkItem(delegate
{
  for (int i = 0; i < 20 && TargetNode.Nodes.Count == 0; i++)
  {
    Thread.Sleep(100);
  }
  MainWindowCommandInterface.Invoke(delegate { TargetNode.Expand(); });
});

2,直接傳方法名。

ThreadPool.QueueUserWorkItem(WaitForReboot, connection);
private void WaitForReboot(object o)
{
}

3,用delegate構造一個WaitCallback。

ThreadPool.QueueUserWorkItem(new WaitCallback(delegate(Object o)
{
  ClientFillRectangle(0, 0, DesktopSize.Width, DesktopSize.Height, Color.Black);
}), null);

4,用含一個object類型的方法Connect構造一個WaitCallback。

ThreadPool.QueueUserWorkItem(new WaitCallback(Connect), new KeyValuePair<VNCGraphicsClient, Exception>(vncClient, null));
private void Connect(object o)
{
}

5,WaitCallback類型的delegate。

ThreadPool.QueueUserWorkItem((WaitCallback)delegate(object o)
{
  // Sleep a short time before closing the splash
  Thread.Sleep(500);
  Program.Invoke(Program.MainWindow, Program.CloseSplash);
});

6,直接傳Lambda表達式。

ThreadPool.QueueUserWorkItem(o =>
{
  Program.Invoke(Program.MainWindow, () =>
  {
    PerformStorageSystemScan();
    if (systemsAfter.Count > systemsBefore.Count)
    {
      // the new item should be selected
.      comboBoxStorageSystem.SelectedItem = systemsAfter.Find(ss => !systemsBefore.Contains(ss));
      comboBoxStorageSystem.DroppedDown = true;
    }
  });
});

關于怎樣給C# 中的QueueUserWorkItem傳參問題的解答就分享到這里了,希望以上內容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業資訊頻道了解更多相關知識。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

兰州市| 龙泉市| 鄂州市| 海南省| 会理县| 龙游县| 沾益县| 永康市| 陆良县| 东辽县| 兴仁县| 榆社县| 鱼台县| 宁河县| 张家港市| 富宁县| 邯郸县| 凌海市| 漳浦县| 张家界市| 天全县| 凯里市| 肇庆市| 苏州市| 定襄县| 昌黎县| 漾濞| 弥勒县| 泸州市| 周宁县| 墨玉县| 永登县| 平顶山市| 宜兴市| 内江市| 丽水市| 隆德县| 广丰县| 外汇| 赣榆县| 宜昌市|