C#有一个测试的线程,测试结束后,希望这个线程重复执行,代码怎么写,刚接触线程,
又是这种问题啊。我要直接说Task不知道你能接受不
如果你能接受那就是
while(true)
{
await task.run(你要做的事情)
}
如果你不能接受task,非要跟着某个园子折腾啥线程这个名词。我们也只能用名词给你解决了。
你不是不知道线程啥时候结束么,那好。我们解决你如何知道他结束了,你知道他啥时候结束了自然就知道啥重新调用他了。
想知道线程这名词啥时候结束
那就请写个“回调”名词,在前一个结束前回调
或者写个同步阻塞信号名词,线程执行的用阻塞信号名词给个同步量,等线程结束了,释放这个“同步阻塞信号”名词
或者弄个timer名词,不停用自旋这个名词去观察线程这个名词还在不在
不明白你想表达什么
什么叫测试结束后,都结束了进程不应该退出了吗
你想让线程重复执行,里面写个while不就一直执行了吗
可能你需要一个代码示例进行理解,可以使用while(true)循环来重复执行一个线程。
这个线程会不停地执行测试逻辑,每5秒重复一次。
public void RepeatingThread()
{
Thread thread = new Thread(() =>
{
while (true)
{
// 线程体,执行测试逻辑
Console.WriteLine("Running test...");
// 测试结束,sleep一段时间后再执行
Thread.Sleep(5000);
}
});
thread.Start();
}
在暑期用了将近两周的时间学了C#语言,也对面向对象的思想有了一定的了解,但不能光说不练,从我学习C语言的过程我就深刻地体会过实践的经验积累对于掌握一门计算机语言多么重要。
我可以通过使用Thread类来编写一个测试线程,并使用Thread.Sleep方法来模拟线程的执行。在测试完成后,我可以使用Thread.Abort方法来结束线程的执行。如果想让该线程重复执行,可以使用一个循环结构来不断启动新的线程。
具体步骤如下:
Thread testThread = new Thread(new ThreadStart(TestMethod));
其中TestMethod是定义的线程执行方法。
public static void TestMethod()
{
Console.WriteLine("Testing...");
Thread.Sleep(5000); // 模拟测试的执行
Console.WriteLine("Test finished.");
}
这段代码将输出Testing...,然后暂停5秒钟,最后输出Test finished.。
testThread.Start();
testThread.Join();
这段代码将会等待testThread线程执行完成后才会继续执行主线程。
while (true)
{
Thread testThread = new Thread(new ThreadStart(TestMethod));
testThread.Start();
testThread.Join();
}
这会在测试完成后,启动一个新的测试线程来继续执行测试。
请注意,线程的重复执行可能会导致资源的浪费和性能问题,需要根据具体情况进行优化。
完整代码如下:
using System;
using System.Threading;
class Program
{
static void Main(string[] args)
{
while (true)
{
Thread testThread = new Thread(new ThreadStart(TestMethod));
testThread.Start();
testThread.Join();
}
}
static void TestMethod()
{
Console.WriteLine("Testing...");
Thread.Sleep(5000); // 模拟测试的执行
Console.WriteLine("Test finished.");
}
}