Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/328.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何附加非UI线程的SynchronizationContext_C#_Multithreading_.net 3.5_Synchronization - Fatal编程技术网

C# 如何附加非UI线程的SynchronizationContext

C# 如何附加非UI线程的SynchronizationContext,c#,multithreading,.net-3.5,synchronization,C#,Multithreading,.net 3.5,Synchronization,我正在进行单元测试,我必须将一个线程的上下文传递给另一个线程。在现实生活中,第一个是UI线程,一切都会好起来(我希望如此)。但是我的单元测试没有UI(它是一些测试线程)。 我读过:“ 是否可以将一个线程(非UI)的上下文附加到另一个线程?如何做到这一点?我认为您可能需要重新考虑您的测试策略 如果您真的想测试GUI和一些后台任务线程安全方面的交互,您可以创建简单的WinForm并进行尝试 或者尝试创建测试,以便在从后台线程获得一些结果(即正确显示结果)后,GUI窗体的行为符合预期 为GUI创建单元

我正在进行单元测试,我必须将一个线程的上下文传递给另一个线程。在现实生活中,第一个是UI线程,一切都会好起来(我希望如此)。但是我的单元测试没有UI(它是一些测试线程)。 我读过:“
是否可以将一个线程(非UI)的上下文附加到另一个线程?如何做到这一点?

我认为您可能需要重新考虑您的测试策略

如果您真的想测试GUI和一些后台任务线程安全方面的交互,您可以创建简单的WinForm并进行尝试

或者尝试创建测试,以便在从后台线程获得一些结果(即正确显示结果)后,GUI窗体的行为符合预期

为GUI创建单元测试相当棘手。这就是为什么人们倾向于删除GUI之外的所有业务和任何其他逻辑,以便易于测试


也许你可以考虑使用MVVM的WPF,或者使用MVP使用WiFrm,这样就可以更容易地画出这条线

我想你可能需要重新思考一下你的测试策略。 如果您真的想测试GUI和一些后台任务线程安全方面的交互,您可以创建简单的WinForm并进行尝试

或者尝试创建测试,以便在从后台线程获得一些结果(即正确显示结果)后,GUI窗体的行为符合预期

为GUI创建单元测试相当棘手。这就是为什么人们倾向于删除GUI之外的所有业务和任何其他逻辑,以便易于测试


也许你可以考虑使用MVVM的WPF,或者用MVP使用WiFrm,这样就更容易画出这条线

你是对的,我从来没有在UI +多线程中使用业务逻辑。我完全理解如何做到这一点,但我有一个逻辑性很强的丰富UI,我没有太多时间重新设计它。所以我在寻找一个“小血液”解决方案。你说得对,我从来没有在UI+多线程中使用过业务逻辑。我完全理解如何做到这一点,但我有一个逻辑性很强的丰富UI,我没有太多时间重新设计它。所以我在寻找一种“小血”的解决方案。