multithreading - 在多线程VB6中使用互斥锁

标签 multithreading sockets vb6 mutex

我正在更新用VB6编写的旧代码,并且遇到了互斥的需求。我有两个套接字,我需要从各种来源发送和接收消息。因此,我计划让一个套接字持续监听传入的连接,然后使用另一个套接字进行发送或接收。

计时器每秒检查二十次是否已建立连接,如果是,则使用第二个套接字接受它,然后立即开始再次监听。如果第二个连接在第一个连接完成接收数据之前进入,则需要等待(在C#中,我将其锁定并调用完成)。

另外,如果程序需要发送数据,我将使用第二个套接字,然后连接到远程主机。因此,如果第二个套接字已经在接收数据,它也需要阻塞。

我对VB6中的多线程不熟悉-这是一个问题,还是计时器的Tick事件总是在与其他所有线程相同的线程上引发?

最佳答案

Tick事件始终在同一单线程上引发。因为只有一个线程,所以一切都会自动阻塞。

在我看来,除了ActiveT EXE项目using之外,VB6中的多线程并没有真正起作用:有various hacks可以使多线程工作,但是它们对我来说是犯规的,尽管其他人对此也发誓。

关于multithreading - 在多线程VB6中使用互斥锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3292402/

相关文章:

即使应用程序已注册为 VOIP,当应用程序暂停时,iOS9 套接字连接也会终止

c# - 将字符串和文件从 Android 客户端发送到 C# 服务器

MYSQL UDF 套接字

vba - 是否需要将Objects设置为Nothing

vb.net - 如何从 .NET Interop-ed UserControl 关闭 VB6 父窗体?

iOS 6 处理托管对象后台保存的标准方法是什么(2013 年)?

python - 遍历将来的结果时,如何获取发送给ThreadPoolExecutor的参数?

c - 多线程 C 程序中的错误线程 ID?

vb6 - 对 VB6/Winsock/ADO 应用程序进行逆向工程

java - 发生某种情况后停止线程 ScheduledThreadPoolExecutor