gpt4 book ai didi

c# - 如何让我的控制台应用程序在不退出的情况下在另一个线程上运行后台进程?

转载 作者:太空狗 更新时间:2023-10-29 23:24:29 33 4
gpt4 key购买 nike

我知道在 .NET有三种计时器类型(参见 Comparing the Timer Classes in the .NET Framework Class Library )。我选择了一个线程计时器,因为如果主线程繁忙,其他类型可能会漂移,我需要它是可靠的。

这个定时器在定时器控制中的工作方式是放在另一个线程上的,这样它就可以在父线程不忙的时候随着工作开始完成而一直滴答作响。

控制台应用程序中此计时器的问题在于,当计时器在另一个线程上计时时,主线程未执行任何操作,因此应用程序关闭。

我尝试添加一个 while true 循环,但是当计时器关闭时主线程太忙了。

最佳答案

我会使用一个等待所有线程完成的 Barrier。由于有一个主线程和一个计数线程,我有 2 个参与者。所以它看起来像这样:

 Module Module1
Dim x As New Threading.Thread(AddressOf tick)
Dim y As New Threading.Barrier(2)

Sub Main()
x.IsBackground = True
x.Start()
y.SignalAndWait()
End Sub

Sub tick()
Threading.Thread.Sleep(10000)
y.SignalAndWait()
End Sub
End Module

关于c# - 如何让我的控制台应用程序在不退出的情况下在另一个线程上运行后台进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14049051/

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