gpt4 book ai didi

c# - 如何在控制台应用程序中使用 Invoke Required 和 invoke?

转载 作者:太空宇宙 更新时间:2023-11-03 20:02:16 26 4
gpt4 key购买 nike

我正在尝试将 Winform 应用程序转换为控制台应用程序。 Winform 应用程序有一个委托(delegate)处理程序。如何在 console 应用程序中编写相同的功能? this.InvokeRequiredthis.Invoke

的替代方案是什么
public delegate void DelegateMessage( string Reply );

_pipeServer.PipeMessage += new DelegateMessage( PipesMessageHandler );

private void PipesMessageHandler( string message ) {
try {
if ( this.InvokeRequired ) {
this.Invoke(new NewMessageDelegate(PipesMessageHandler), message);
}
else {
txtMessage.Text = message;
}
} catch ( Exception ex ) {
Debug.WriteLine( ex.Message );
}

}

最佳答案

你不知道。

Invoke - 跨线程机制构建在 Windows 消息循环之上。

如果你真的需要跨线程调用,你可以做的是创建一个隐藏窗口并启动一个消息循环(使用 UI 和拥有控制台并不相互排斥),完成你的工作,在控制台上显示结果,然后在需要时使用 Invoke 在主线程上执行操作。

但是,如果您没有任何 UI,那么需要在主线程上执行操作的主要原因也不复存在。您已跳转到“什么是 InvokeRequired 的等价物?”无需先找到 TextBox 的等效项。

关于c# - 如何在控制台应用程序中使用 Invoke Required 和 invoke?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26689762/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com