【c# – 等待后台线程完成】教程文章相关的互联网学习教程文章

c# – 线程执行时序

我编写了一个程序,它依赖于线程.此外,还需要测量每个线程所花费的总时间,以及执行时间(内核时间加上用户时间). 可以有任意数量的线程,许多线程可以同时运行.这取决于用户活动.我需要它们尽可能快地运行,因此使用具有一些开销的东西(如WMI /性能监视器)来测量线程时间并不理想. 目前,我正在使用GetThreadTimes,如本文所示:http://www.codeproject.com/KB/dotnet/ExecutionStopwatch.aspx 我的问题很简单:我理解.NET线程可能与系统...

c# – MSpec:如何使静态变量线程安全?

我正在使用MSpec作为我的最新项目,总的来说我对它非常满意.但是,当我的测试以并行方式运行时,我确实遇到并发问题,我想知道是否有人遇到过这个问题,或者更好的是,有一个解决方案? MSpec严重依赖静态方法和变量来工作. 现在,当我在我的基类中定义静态变量时,它会被多个测试类使用,并且我在paralel中运行我的测试,它们共享相同的静态变量,从而干扰彼此. 我正在使用NCrunch和Resharper作为我的测试人员,我遇到了这两个问题. 有人熟悉这...

c# – 关闭主线程【代码】

我正在通过smo进行恢复过程.成功恢复后,我启用了我的数据库 currentDb.SetOnline(); 问题是数据库实例在此之后无法工作.实例无法连接.所以我想我不会关闭我的应用程序.Application.Exit();但编写上面的代码不存在我的应用程序,而不是我得到了例外.细节是 输入代码hereSystem.NullReferenceException未处理Message="Object reference not set to an instance of an object."Source="VitoProject"StackTrace:at VitoProject.b...

C#的多线程机制探索

原文链接:http://www.cnblogs.com/kevinliu5/p/3611245.html注:本文中出现的代码均在.net Framework RC3环境中运行通过  一.多线程的概念   Windows是一个多任务的系统,如果你使用的是windows 2000及其以上版本,你可以通过任务管理器查看当前系统运行的程序和进程。什么是进程呢?当一个程序开始运行时,它就是一个进程,进程所指包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的,线程...

c# – 从另一个线程关闭表单【代码】

我有一个管理器类,它使用ShowDialog函数启动一个Form.现在,我正在启动一个事件(如计时器),并希望管理员在计时器到期时关闭表单. 我用了2个班:namespace ConsoleApplication3 { class Manager {Timer UpdTimer = null;readonly int REFRESH_STATUS_TIME_INTERVAL = 5000;Form1 form1;public Manager(){}public void ManageTheForms(){UpdTimer = new Timer(REFRESH_STATUS_TIME_INTERVAL);// start updating timer//UpdTimer.Inter...

在C#控制台应用程序中并行使用线程概念执行多于2个Dtsx包【代码】

我有控制台应用程序需要以下面的方式执行总共17个SSIS Dtsx包. [1]在第一个线程中,它应该同时并行执行3个包[2]在第二个线程中,它应该同时并行执行5个包,依此类推…… 我听说过一个名为parallelism的概念,它正在用于更高版本的.Net Framework 4.0等.但是我不确定如何在Projcet中实现它. 我尝试了一些使用线程的示例,这是我的代码片段.Thread.Sleep(2000);Thread First = new Thread(new ThreadStart(FirstThread));Thread Second = ...

c# – 当主UI线程冻结时,为什么我的PC’冻结’?

我看过很多关于为什么不使用Backgroundworkers导致UI冻结的帖子,我理解这一点.但是,当发生这种情况时,我无法将光标移动几秒钟?我不确定一个线程是什么或它是如何工作的,但肯定一个线程的工作负载不会影响另一个线程的响应能力.当然,Windows 7游标不会与我的程序(4237等)在同一个线程上运行.是否有一个复杂,可行的理由,或者只是我的PC分崩离析?解决方法:进程是在CPU上执行的程序的实例(进程可以包含一个或多个线程).如果一个线程占...

c# – 关闭GUI时杀死线程【代码】

我需要在两到四个不同的服务器上执行时间密集型任务. 服务器的数量可以变化. 我需要在大致相同的时间在每台机器上执行相同的任务,否则它会使此过程花费的时间增加四倍. 到目前为止,我已经能够想出这个:public partial class Form_main : Form {list<string> vms = new list<string>;///Fill in vms...private void startTest(){///prevents GUI from hangingThreadPool.QueueUserWorkItem(new WaitCallback(runTests));}pirvate v...

c# – 从另一个类和线程的接口回调更新winform【代码】

我有一个winform和一个连续发送更新的接口回调.我希望能够从回调接口更新label1.Text.然而,因为inface在一个单独的线程上运行,我不认为我可以直接执行它所以我试图使用委托并调用. 但是我遇到了一个错误: 在创建窗口句柄之前,无法在控件上调用Invoke或BeginInvoke – atform1.Invoke(form1.myDelegate, new Object[] { so.getString() });这是完整的代码.public partial class Form1 : Form{MyCallBack callback;public delegat...

c# – .NET中非托管线程的异常【代码】

如何处理我的应用程序终止时的情况,在终止之前使用回调? .NET处理程序在以下场景中不起作用,SetUnhandledExceptionHandler是正确的选择吗?它似乎具有以下讨论的缺点. 脚本 我想回复所有应用程序终止的情况,并在我们的.net应用程序中向我们的服务发送消息和错误报告. 但是,我有一个WPF应用程序,其中我们的两个测试人员获得绕过的未处理异常: > AppDomain.UnhandledException(最重要的)> Application.ThreadException> Dispatcher...

c# – 在Parallel.Invoke中命名一个线程会导致异常“此属性已设置且无法修改”.【代码】

我有一个应用程序,它已经运行了很长时间没有问题,由于以下错误突然无法启动: “此属性已设置且无法修改.” 当我检查代码,它基本上类似于下面的代码片段时,我看到在行上抛出异常,试图在Parallel.Invoke中命名第一个任务Thread.CurrentThread.Name = "Main Program Thread";// Do some start up tasks in parallel Parallel.Invoke(new ParallelOptions { MaxDegreeOfParallelism = 10 }, () => {Thread.CurrentThread.Name = "Firs...

C#之线程ThreadStart

本来自于https://docs.microsoft.com/zh-cn/dotnet/api/system.threading.threadstart?view=netframework-4.8; static void Main(string[] args)??????? { ThreadStart threadStartDelegate = new ThreadStart(Work.DoWork); //创建委托 Thread thread = new Thread(threadStartDelegate); //用ThreadStart委托实例化线程Thread??????????? thread.Start(); ??????????? Work work = new Work();???????...

c# – 终结者线程ID【代码】

我们看到我们的一个WCF应用程序出现内存泄漏,我想知道是否有人可以为我澄清一些内容.使用windbg我运行!finalizequeue并在每个堆中显示数千个对象设置为“准备完成”.Heap 0 generation 0 has 464 finalizable objects (0000000033877190->0000000033878010) generation 1 has 52 finalizable objects (0000000033876ff0->0000000033877190) generation 2 has 19958 finalizable objects (0000000033850040->0000000033876ff0) Rea...

c# – 让用户选择他想要的线程数?【代码】

参见英文答案 > Make user choosing how many threads he want the program to use 2个我正在尝试创建一个C#工具,用户可以在其中选择他希望工具同时执行的线程数.因此,例如,他将“10”放在threadsT??extBox中,因此当他单击startButton时,程序将启动,并将同时在10个线程上执行所需的任务. 这是我有3个线程的当前代码,但我不知道如何让用户能够选择他希望程序使用多少线程.static void Main(stri...

C#考试70-483参考书的例子有错吗? (父/子线程)【代码】

在C# 70-483 Exam Ref的第一版中,示例1-12给出了将子任务附加到父任务的示例.我认为这是错误的,并希望有人在继续这个假设之前检查我的理解.示例中的代码如下:using System; using System.Threading.Tasks;namespace Chapter1 {public static class Program{public static void Main(){Task<Int32[]> parent = Task.Run(() =>{var results = new Int32[3];new Task(() => results[0] = 0, TaskCreationOptions.AttachedToParent).S...