【发布时间】:2011-11-18 06:58:46
【问题描述】:
我正在创建一个简单的异步套接字侦听器,它充当设备的网关。此侦听器将侦听任意端口并为其他软件提供 API 以通过网络访问设备。
要创建异步套接字侦听器based on this article on MSDN,我必须创建一个无限循环,如下所示:
while (true) {
// Set the event to nonsignaled state.
allDone.Reset();
// Start an asynchronous socket to listen for connections.
Console.WriteLine("Waiting for a connection...");
listener.BeginAccept(
new AsyncCallback(AcceptCallback),
listener
);
// Wait until a connection is made before continuing.
allDone.WaitOne();
}
控制台程序原型运行良好。但是,我打算创建异步套接字侦听器的 GUI 版本。我知道如果我在 GUI 中执行无限循环,GUI 会挂起。如何为侦听器提供图形用户界面?我希望有一个不涉及线程的简单解决方案。
【问题讨论】:
-
您正在使用线程——请参阅AsyncCallback 的文档。
-
@DavidSchwartz - 感谢您的更正:) - 我不知道。在 C# 中使用异步套接字侦听器 API 比自己生成和管理线程要简单得多
标签: c# listener infinite-loop asyncsocket