diff --git a/.gitignore b/.gitignore index 3c32ecf..bc2a9bd 100644 --- a/.gitignore +++ b/.gitignore @@ -159,6 +159,9 @@ _TeamCity* .axoCover/* !.axoCover/settings.json +# Visual Studio code +.vscode + # Visual Studio code coverage results *.coverage *.coveragexml diff --git a/MultiThreadingStudy.ConsoleApp/Program.cs b/MultiThreadingStudy.ConsoleApp/Program.cs index c521401..63b6bc2 100644 --- a/MultiThreadingStudy.ConsoleApp/Program.cs +++ b/MultiThreadingStudy.ConsoleApp/Program.cs @@ -1,4 +1,4 @@ -namespace MultiThreadingStudy.ConsoleApp +namespace MultiThreadingStudy.ConsoleApp { internal class Program { diff --git a/MultiThreadingStudy.Core/Person.cs b/MultiThreadingStudy.Core/Person.cs index dce0855..6815196 100644 --- a/MultiThreadingStudy.Core/Person.cs +++ b/MultiThreadingStudy.Core/Person.cs @@ -1,4 +1,4 @@ -using System; +using System; namespace MultiThreadingStudy.Core { diff --git a/MultiThreadingStudy.WinFormsApp/Form1.Designer.cs b/MultiThreadingStudy.WinFormsApp/Form1.Designer.cs index 5aac8c8..b0dff71 100644 --- a/MultiThreadingStudy.WinFormsApp/Form1.Designer.cs +++ b/MultiThreadingStudy.WinFormsApp/Form1.Designer.cs @@ -1,4 +1,4 @@ -namespace MultiThreadingStudy.WinFormsApp +namespace MultiThreadingStudy.WinFormsApp { partial class Form1 { diff --git a/MultiThreadingStudy.xUnitTest/ThreadTest.cs b/MultiThreadingStudy.xUnitTest/ThreadTest.cs index 2d786fa..3a6bab3 100644 --- a/MultiThreadingStudy.xUnitTest/ThreadTest.cs +++ b/MultiThreadingStudy.xUnitTest/ThreadTest.cs @@ -12,16 +12,16 @@ namespace MultiThreadingStudy.xUnitTest } /// <summary> - /// ���Է����������߳�Ϊ��̨�߳� - /// ���ۣ��ڲ��Է��������������߳�(��ʹ���ó�ǰ̨�߳�)��Ĭ������£�������ֹ��Ԫ���Է�����ִ�н����� - /// ���Է����ܿ����������������߳̽������У�������߳�û��ִ��������Ų��Է����߳̽����������� + /// 测试方法的启动线程为后台线程 + /// 结论:在测试方法中新启动的线程(即使设置成前台线程),默认情况下,不能阻止单元测试方法的执行结束。 + /// 测试方法很可能先于新启动的线程结束运行,造成新线程没有执行完就随着测试方法线程结束而结束。 /// </summary> [Fact] public void TestRunThread_Test() { - _output.WriteLine($"���߳�Id={Thread.CurrentThread.ManagedThreadId}, �Ƿ��̨�߳�={Thread.CurrentThread.IsBackground}"); + _output.WriteLine($"主线程Id={Thread.CurrentThread.ManagedThreadId}, 是否后台线程={Thread.CurrentThread.IsBackground}"); - //���ԣ����Ե������߳�Ϊ��̨�߳� + //断言:测试的启动线程为后台线程 Assert.True( Thread.CurrentThread.IsBackground); } @@ -31,16 +31,16 @@ namespace MultiThreadingStudy.xUnitTest [Fact] public void Test1() { - _output.WriteLine($"���߳�Id={Thread.CurrentThread.ManagedThreadId}, �Ƿ��̨�߳�={Thread.CurrentThread.IsBackground}"); + _output.WriteLine($"主线程Id={Thread.CurrentThread.ManagedThreadId}, 是否后台线程={Thread.CurrentThread.IsBackground}"); Thread t = new Thread(() => { - _output.WriteLine($"���߳�Id={Thread.CurrentThread.ManagedThreadId}, ���߳�����={Thread.CurrentThread.Name}"); + _output.WriteLine($"新线程Id={Thread.CurrentThread.ManagedThreadId}, 新线程名称={Thread.CurrentThread.Name}"); - _output.WriteLine($"{Thread.CurrentThread.Name} ���̣߳���ʼ����"); + _output.WriteLine($"{Thread.CurrentThread.Name} 新线程,开始休眠"); Thread.Sleep(100); - _output.WriteLine($"{Thread.CurrentThread.Name} ���̴߳������л��ѣ�ִ�н�����"); + _output.WriteLine($"{Thread.CurrentThread.Name} 新线程从休眠中唤醒,执行结束!"); }) { Name = "FirstThread", diff --git a/MultiThreadingStudy.xUnitTest/UseXunit.cs b/MultiThreadingStudy.xUnitTest/UseXunit.cs index 79b14b9..8a65a5b 100644 --- a/MultiThreadingStudy.xUnitTest/UseXunit.cs +++ b/MultiThreadingStudy.xUnitTest/UseXunit.cs @@ -14,7 +14,7 @@ namespace MultiThreadingStudy.xUnitTest [Fact] public void Test1() { - _output.WriteLine("ʹ�� xUnit ��־"); + _output.WriteLine("使用 xUnit 日志"); } public void Dispose()