1
當我的後臺線程完成時,它使用匿名lambda語句運行System.Action回調。我想知道如何重寫下面的代碼,以使用Completed函數進行回調/ lambda語句。後臺線程lambda回調
視圖模型:BaseViewModel
public override void Initialize(System.Action onInitializeCallback = null)
{.....
BackgroundEntityWorker.RunWorkerCompleted += (sender, args) =>
{
If (onInitializeCallback != null)
{
onInitializeCallback();
}
};
.....
}
我想改變它的東西下面
BackgroundEntityWorker.RunWorkerCompleted += BackgroundWorker_Completed =>
{
If (onInitializeCallback != null)
{
onInitializeCallback();
}
};
BaseViewModel
public virtual void Reload(int? id = null, Action<T> callback = null)
{
Initialize(() =>
{
Localize();
if (id == null)
{
IndicateLoading(false);
}
else
{
Load(id.Value,() => IndicateLoading(false));
}
});
}
我得到一個錯誤Argument type 'Lambda expression
是不能分配給參數類型System.ComponentModel.RunWorkerCompletedEventHandler
我試圖
BackgroundEntityWorker.RunWorkerCompleted += BackgroundWorker_Completed;
,但我失去了我的回調,我該如何設置它有BackGroundWorker_Completed和維護我的回調?
你失去了我。你正在試圖發送兩個回調函數......有點。我沒有得到你想要的東西。 – Jonesopolis
您是否嘗試使用命名方法作爲回調?目前我不確定你的意思是「用回調/ lambda語句使用Completed函數」,你的例子對我來說沒有任何意義。 – Chris
只需傳遞您打算使用的代表。將整個lambda替換爲delete的名稱(您的其他回調函數)。 – ryanyuyu