【c#-是否可以在非WPF线程上使用Dispatcher?多线程新手】教程文章相关的互联网学习教程文章

StreamWriter多线程C#【代码】

我想请求帮助我的代码.我是一个新手,想要在写入文本文件时实现安全的多线程.StreamWriter sw = new StreamWriter(@"C:\DailyLog.txt");private void Update(){var collection = Database.GetCollection<Entity>("products");StreamReader sr = new StreamReader(@"C:\LUSTK.txt");string[] line = sr.ReadLine().Split(new char[] { ';' });while (!sr.EndOfStream){line = sr.ReadLine().Split(new char[] { ';' });t = delegate ...

C#多线程 – 使用什么方法?

我的目标是编写一个程序,根据给定的用户输入处理任意数量的任务. 假设在这种情况下,任务数量为1000. 现在,我希望能够生成动态数量的线程并逐个开始处理任务. 我认为我需要使用“同步”方法,而不是“异步”方法,以便在一个任务出现问题的情况下,我不希望它减慢其余任务的完成速度. 我将用什么方法来实现上述目标?信号灯?线程池?如何确保线程不会尝试启动已由另一个线程处理的任务? “锁定”会处理这个吗? 我们将非常感谢代码示...

c# – 当多线程时,循环索引超出范围ArgumentOutOfRangeException【代码】

我得到了一些奇怪的行为……当我在ThreadTest方法中迭代dummyText List时,我得到一个超出范围异常的索引(ArgumentOutOfRangeException),但是如果我删除了线程并且我只是打印出文本,那么一切正常精细. 这是我的主要方法:public static Object sync = new Object(); static void Main(string[] args) {ThreadTest();Console.WriteLine("Press any key to continue.");Console.ReadKey(); }此方法抛出异常:private static void Thre...

c# – .net多线程学习资料

任何人都可以在.net上分享一些用于多线程的学习资料吗? 编辑:我不想学到太多细节解决方法:我推荐Joe Duffy的Concurrent Programming On Windows.同时跟上PFX team blog.

c#中多线程同步Lock(锁)的研究以及跨线程UI的操作 (转)【代码】【图】

https://www.cnblogs.com/tommyheng/p/4104552.html 本文只针对C#中,多线程同步所用到的锁(lock)作为研究对象。由于想更直观的显示结果,所以,在做demo的时候,就把多线程通过事件操作UI的代码也写了出来,留作备忘和分享吧。 其实多线程的同步,使用同步锁的方法用了好多次,今天无意中看到MSDN中,建议用:1 private static readonly object locker1 = new object(); 2 private readonly object locker2 = new object();备注:...

c# – 如何多线程“跨层”具有相关ID的单例而不锁定?【代码】

因此,我们使用具有相关ID的公共状态上下文单例进行集中式日志记录.目的是在整个过程中跟踪id并关联不同的层. 状态上下文由多个dll和多个用户访问. 多线程发挥作用时遇到困难: >进程1已被用户1触发>相关ID设置为{1}> DLL A访问状态上下文并获取相关ID {1}>在流程1完成之前,流程2已由用户2解雇>关联ID设置为{2}> DLL B来自第一个进程访问状态上下文,其相关标识为{2}时应为{1} 我们如何解决这个问题? 我们认为锁定不是我们的解决方案...

C#的多线程机制探索

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

我应该如何加载一次图像并在多线程C#应用程序中传递它?

我正在编写一个应用程序,其目的是在文件夹中查找图像并将其呈现给用户,询问如何裁剪它们.随着我每天从语言到语言的所有跳跃,我倾向于让我的最佳实践和概念混乱,这就是这种情况. 程序流程如下:您将看到主窗体,带有浏览按钮(您也可以将文件夹放到其上).当您选择一个文件夹时,它会打开另一个表单,扫描所选文件夹中的.jp [e] g和.tif [f]图像,并将它们显示在列表中,询问您要裁剪哪些文件,以及其他一些图像选项.然后它返回到主窗体,该窗...

C#/.NET 线程池ThreadPool多线程实现【代码】

线程池简介: 线程池是一种多线程处理形式,处理过程中将任务添加到队列,然后在创建线程后自动启动这些任务。线程池线程都是后台线程。每个线程都使用默认的堆栈大小,以默认的优先级运行,并处于多线程单元中。如果某个线程在托管代码中空闲(如正在等待某个事件),则线程池将插入另一个辅助线程来使所有处理器保持繁忙。如果所有线程池线程都始终保持繁忙,但队列中包含挂起的工作,则线程池将在一段时间后创建另一个辅助线程但...

C#中的多线程加密【代码】

我是加密的新手,并使用以下方法加密文件:private static void encryptFile(string filePath, byte[] password, byte[] salt) {Rfc2898DeriveBytes rdb = new Rfc2898DeriveBytes(password, salt, 1000);AesManaged algorithm = new AesManaged();byte[] rgbKey = rdb.GetBytes(algorithm.KeySize / 8);byte[] rgbIV = rdb.GetBytes(algorithm.BlockSize / 8);GCHandle keyHandle = GCHandle.Alloc(rgbKey, GCHandleType.Pinned);G...

c# – 检查列表Count属性时出现多线程问题【代码】

我有List newJobs.有些线程将项目添加到该列表中,而其他线程则从中删除项目(如果它不为空).我有ManualResetEvent newJobEvent,它在项目添加到列表时设置,并在项目从中删除时重置: 通过以下方式将项添加到列表:lock(syncLock){newJobs.Add(job); } newJobEvent.Set();删除作业的方式如下:if (newJobs.Count==0)newJobEvent.WaitOne(); lock(syncLock){job = newJobs.First();newJobs.Remove(job);/*do some processing*/ } newJo...

c# – 将多线程工作到库中有哪些策略?【代码】

我正在编写一个库来处理长期运行的任务,例如文件下载和处理大量文本.我想多线程化这个库,以便这些任务不会冻结使用它们的应用程序. 您是否有结构化方式或我应该使用/避免的特定课程的建议?我在考虑使用IAsyncResult接口:http://msdn.microsoft.com/en-us/library/system.iasyncresult.aspx,或者也许是一些BackgroundWorkers.解决方法:so that these tasks won’t freeze up the applications that use them.如果这是您的目标,那么...

如何在C#中正确多线程运行时调用的DLL【代码】

所有, 我希望编写一个插件.dll,由运行时调用的.NET应用程序使用/调用.我的.dll是一个WinForm并显示正在进行的(计算上昂贵的)操作.从主应用程序调用.dll是通过.NET System.Reflection调用的.我必须向调用应用程序提供NameSpace,Class和我想要调用的方法. 我想多线程我的.dll,以便它更友好的UI,我只是熟悉BackgroundWorkers. 编辑:扩展问题. 所以,我将.dll称为如下:if (classType != null) {if (bDllIsWinForm){classInst = Activa...

C#多线程的同步与通信【代码】

C#中使用lock和Monitor控制多线程对资源的使用,最常见的生产者和消费者问题就是多线程同步和通信的经典例子。了解C#多线程的同步与通信。 一、关于lock和Monitor lock可以把一段代码定义为互斥段(critical section),互斥段在一个时刻内只允许一个线程进入执行,而其它线程必须等待。格式定义如下:lock(expression) statement_block expression代表要跟踪的对象,通常是引用。一般地,如果想保护一个类的实例,使用this;如果保...

C#的多线程机制探索(上)

一.多线程的概念 Windows是一个多任务的系统,如果你使用的是windows 2000及其以上版本,你可以通过任务管理器查看当前系统运行的程序和进程。什么是进程呢?当一个程序开始运行时,它就是一个进程,进程所指包括运行中的程序和程序所使用到的内存和系统资源。而一个进程又是由多个线程所组成的,线程是程序中的一个执行流,每个线程都有自己的专有寄存器(栈指针、程序计数器等),但代码区是共享的,即不同的线程可以执行同样的...