c#在一个线程结束时打印hello world
时间: 2024-10-09 19:15:04 浏览: 31
在 C# 中,如果你想要在线程结束时打印 "Hello World",你可以创建一个自定义的 `Thread` 类的子类,并在其 `OnException` 或 `Finalize` 方法中添加相应的代码。这里有一个简单的例子:
```csharp
using System;
using System.Threading;
public class ThreadWithMessage : Thread
{
private string message;
public ThreadWithMessage(string message)
{
this.message = message;
}
protected override void OnException(Exception e)
{
// 如果线程在运行过程中抛出异常,会触发这个事件
Console.WriteLine("线程执行异常:{0}", message);
}
// 这里我们不使用 Finalize,因为它不如 OnException 可靠
//protected override void Finalize()
//{
// base.Finalize();
// Console.WriteLine(message); // 如果需要,在析构函数中打印
//}
~ThreadWithMessage()
{
// 使用析构函数作为替代,当对象被垃圾回收器回收时调用
Console.WriteLine(message);
}
}
public class Program
{
static void Main()
{
var thread = new ThreadWithMessage("Hello World from a thread");
thread.Start();
// 线程结束后,main 方法会继续执行,不会等待线程完成
}
}
```
在这个示例中,当你启动一个新的 `ThreadWithMessage` 实例时,它会在开始执行任务之后或者遇到异常时打印出指定的消息。
阅读全文