普通提交
parent
bd19042b05
commit
e425fa6836
@ -0,0 +1,60 @@
|
|||||||
|
using Xunit.Abstractions;
|
||||||
|
|
||||||
|
namespace MultiThreadingStudy.xUnitTest
|
||||||
|
{
|
||||||
|
public class ThreadTest:IDisposable
|
||||||
|
{
|
||||||
|
private readonly ITestOutputHelper _output;
|
||||||
|
|
||||||
|
public ThreadTest(ITestOutputHelper testOutput)
|
||||||
|
{
|
||||||
|
_output = testOutput;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 测试方法的启动线程为后台线程
|
||||||
|
/// 结论:在测试方法中新启动的线程(即使设置成前台线程),默认情况下,不能阻止单元测试方法的执行结束。
|
||||||
|
/// 测试方法很可能先于新启动的线程结束运行,造成新线程没有执行完就随着测试方法线程结束而结束。
|
||||||
|
/// </summary>
|
||||||
|
[Fact]
|
||||||
|
public void TestRunThread_Test()
|
||||||
|
{
|
||||||
|
_output.WriteLine($"主线程Id={Thread.CurrentThread.ManagedThreadId}, 是否后台线程={Thread.CurrentThread.IsBackground}");
|
||||||
|
|
||||||
|
//断言:测试的启动线程为后台线程
|
||||||
|
Assert.True( Thread.CurrentThread.IsBackground);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
///
|
||||||
|
/// </summary>
|
||||||
|
[Fact]
|
||||||
|
public void Test1()
|
||||||
|
{
|
||||||
|
_output.WriteLine($"主线程Id={Thread.CurrentThread.ManagedThreadId}, 是否后台线程={Thread.CurrentThread.IsBackground}");
|
||||||
|
|
||||||
|
|
||||||
|
Thread t = new Thread(() =>
|
||||||
|
{
|
||||||
|
_output.WriteLine($"新线程Id={Thread.CurrentThread.ManagedThreadId}, 新线程名称={Thread.CurrentThread.Name}");
|
||||||
|
|
||||||
|
_output.WriteLine($"{Thread.CurrentThread.Name} 新线程,开始休眠");
|
||||||
|
Thread.Sleep(100);
|
||||||
|
_output.WriteLine($"{Thread.CurrentThread.Name} 新线程从休眠中唤醒,执行结束!");
|
||||||
|
})
|
||||||
|
{
|
||||||
|
Name = "FirstThread",
|
||||||
|
Priority = ThreadPriority.Normal,
|
||||||
|
IsBackground = false,
|
||||||
|
};
|
||||||
|
|
||||||
|
t.Start();
|
||||||
|
t.Join();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1,11 +0,0 @@
|
|||||||
namespace MultiThreadingStudy.xUnitTest
|
|
||||||
{
|
|
||||||
public class UnitTest1
|
|
||||||
{
|
|
||||||
[Fact]
|
|
||||||
public void Test1()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
@ -0,0 +1,25 @@
|
|||||||
|
using Xunit.Abstractions;
|
||||||
|
|
||||||
|
namespace MultiThreadingStudy.xUnitTest
|
||||||
|
{
|
||||||
|
public class UseXunit:IDisposable
|
||||||
|
{
|
||||||
|
private readonly ITestOutputHelper _output;
|
||||||
|
|
||||||
|
public UseXunit(ITestOutputHelper testOutput)
|
||||||
|
{
|
||||||
|
_output = testOutput;
|
||||||
|
}
|
||||||
|
|
||||||
|
[Fact]
|
||||||
|
public void Test1()
|
||||||
|
{
|
||||||
|
_output.WriteLine("ʹÓà xUnit ÈÕÖ¾");
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Dispose()
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -1 +1,5 @@
|
|||||||
global using Xunit;
|
global using Xunit;
|
||||||
|
|
||||||
|
global using System.Threading;
|
||||||
|
global using System.Threading.Channels;
|
||||||
|
global using System.Threading.Tasks;
|
Loading…
Reference in New Issue