【C# 跨线程访问控件】教程文章相关的互联网学习教程文章

C# 多线程控制 通讯 和切换【代码】【图】

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

c# – 请求方法和线程问题?【代码】

我正在开发一款应用程序,它可以为Google 1,Facebook和Twitter推出一个网站.我有一个请求方法接受一个URL,然后关闭并获取每个社交媒体类型的计数. 它的逻辑如下: – >获取网址>在我们获得速率限制/非500响应之前,通过本地/默认IP进行请求>出错 >调用SelectNewProxy()迭代代理列表并随机返回一个尝试(避免IP请求限制的好方法)>从列表中删除不良代理以避免再次选择它>启动一个每秒递增一次的计时器 >当计时器== 600(10分钟) >创建新...

c# – Bitmap区域已经被锁定,多线程环境【代码】

我正在使用一个通过多个线程调用main函数的API.我试图通过该函数访问另一个类中的Bitmap并从中进行写入,但即使将其设置为使用完全不同的对象实例,我遇到InvalidOperationException:位图区域已被锁定. 我已经尝试在main函数中锁定代码并调用Bitmap.LockBits(…).是的,当我完成时,会调用UnlockBits./* Part of Class B */public Surface imageSurface //Surface is a field of pixels, more or less.{get{if (_CurrImage != null &&...

c# – CefSharp是多线程的吗?

我在C#应用程序中使用CEFSharp,我需要在至少10个WebView中一次加载多个URL.但它不像多线程那样工作.有没有办法在多线程中运行它,否则我是否必须使用特定的编译选项从源重建? 谢谢解决方法:它有效,虽然不够好.基于CefSharp.Example,更改:1)应用程序(或进程)只调用一次ExamplePresenter.Init()或CEF.Initialize(设置);2)只有当应用程序(或进程)退出时才会执行“CEF.Shutdown(); System.Environment.Exit(0);”

C#多线程,表现最好?

我目前正在编写一个应用程序,这个应用程序会大量调用缓慢的Web服务(我没有说那种模式)产生很少的输出.我想做100个并行调用(我知道真正的并行性只能到你的核心).但我想知道他们是否是不同方法之间的性能差异. 我在犹豫之间犹豫: >在循环中使用Task.Factory.StartNew.>使用Parallel.For.>使用BackgroundWorker.>使用AsyncCallback.> ……其他人? 我的主要目标是尽可能快地启动尽可能多的Web服务调用.我该怎么办?解决方法:从绩效的...

c# – 延迟加载和多线程【代码】

我正在尝试使用iCarousel库进行单点操作.我成功地移植了库,一切都运行得很好但是如果你输入太多带有图像的UIImageViews应用程序会崩溃,这是正常的,因为iCarousel就像一个UIScrollView. 我必须从辅助线程以某种方式使用延迟加载系统,一次只显示3-4张图像,但我不知道如何使这项工作顺利进行. 此时,我在iCarousel代表中设置了这个:bool threadsAlive = true; public cDelegate() { ThreadPool.QueueUserWorkItem( delegate { refres...

C#多线程编程笔记

在开发中经常有遇到因为程序执行的时间过长,而造成程序假死的情况,这是因为我们的程序是同步执行的,当执行到需要长时间的操作时,程序就会等待当前的操作完成,从而造成程序假死。C#的异步与多线程就是为了解决这个问题的。什么是多线程,举个简单的例子,我们在做饭的时候,可以先煮好饭,然后炒菜,然后洗餐具,然后完成,每一个操作都是在前一个操作完成之后才能进行,这就叫做同步执行,我们也可以在边煮饭的同时炒菜,洗餐...

c# – ConcurrentQueue .Net:多线程消费者【代码】

我有一个非常基本的问题,更多的是关于ConcurrentQueue的概念.队列是FIFO.当多个线程开始访问它时,我们如何保证FIFO?假设,我按顺序添加了Apple,Oranges,Lemon,Peach和Apricot.第一个TryTake应该返回Apple.但是当多个线程开始提供自己的TryTake请求时会发生什么?难道有可能当一个线程甚至在另一个线程可以返回Apple之前返回Lemon时?我假设其他项目也将被返回,直到队列为空.但这些回报是否会围绕FIFO的基本原则进行管理?解决方法:...

C#UWP该应用程序调用了一个为不同线程编组的接口【代码】

我有一个C#UWP应用程序,其中包含我想要每5秒调用一次的函数.从按钮调用时该函数运行正常,并且Timer每5秒钟调试一次调试控制台….当我从Timer调用该函数时,所有函数都会松动.我明白了: System.Exception未被用户代码处理的HResult = -2147417842Message =应用程序称为为不同线程编组的接口. (来自HRESULT的异常:0x8001010E(RPC_E_WRONG_THREAD))解决方法:我假设你的功能触及了应用程序的UI.触摸UI的任何东西都需要在UI的调度程序线...

C# UI 多线程 通知 变更

如果不同的UI对话框分布在不同的线程创建,比如一个在主线程,一个在子线程,则两个线程可以分别自行操作UI的控件。 如果UI对话框是一个线程,业务计算是另一个线程,并且需要操作UI对话框的某个控件,可以这样操作: 在主线程中设置一个参数量操作函数,对应的控件需要变化,可以通过InvokeRequired变量来判断。即既可以实现线程通信,又可以实现线程操作UI。 // 回调就是自身,很简洁 delegate void SetValueCallback(int v...

5天玩转C#并行和多线程编程 —— 第二天 并行集合和PLinq 转载【代码】【图】

5天玩转C#并行和多线程编程系列文章目录 5天玩转C#并行和多线程编程 —— 第一天 认识Parallel 5天玩转C#并行和多线程编程 —— 第二天 并行集合和PLinq 5天玩转C#并行和多线程编程 —— 第三天 认识和使用Task 5天玩转C#并行和多线程编程 —— 第四天 Task进阶 5天玩转C#并行和多线程编程 —— 第五天 多线程编程大总结 在上一篇博客5天玩转C#并行和多线程编程 —— 第一天 认识Parallel中,我们学习了Parallel的用法。并行编程,...

c# – 异常处理:线程v / s任务【代码】

线程版本导致未处理的异常,这会导致应用程序崩溃但任务版本不会崩溃.两者都运行完全相同的方法有人可以解释异常行为的这种差异的原因吗? 线程版本:try{new Thread(new ThreadStart(DoWork)).Start(); // do work throws exception}catch (Exception e){Console.WriteLine(e);}static void DoWork(){Console.WriteLine("in thread");throw new Exception();}任务版本:var errorTask = Task.Factory.StartNew<Func<string>>(() =...

c# – 具有Code-First EF的ASP.net MVC3中的多线程【代码】

一直在寻找我的应用程序的多线程解决方案,但是当我尝试时不断得到随机的NullReferenceException错误,而不是当我连续运行每个错误并且一切顺利. 我正在做的是计算从一个地方到另一个地方的旅程,然后计算回程.回程计算只是使用相同的过程,只有离开和目的地切换. 在具有Entity Framework的ASP.net MVC3应用程序中使用多线程执行此操作听起来是否可行?我已经看过一些文章似乎有EF的问题,但这些听起来只是在页面上共享DBContexts时只是...

c# – WCF服务不是多线程的【代码】

我正在设计WPF应用程序使用的WCF服务.该服务将由50个客户端使用并托管在多核服务器上.这就是为什么我希望它是多线程的. 这是我宣布的方式:[ServiceContract(SessionMode = SessionMode.Required,Namespace = Constants.NameSpace,CallbackContract = typeof (ISaphirServiceCallback))] public interface ISaphirService[ServiceBehavior(ConcurrencyMode = ConcurrencyMode.Multiple, InstanceContextMode=InstanceContextMode.P...

C# 多线程中经常访问同一资源可能造成什么问题?【代码】

竞态条件和死锁。如果两个或多个线程访问相同的对象,或者访问不同步的共享状态 ,就会出现竞态条件;为了避免出现该问题,可以锁定共享的对象。但是过多的锁定也会有麻烦,那就是死锁;当至少有两个线程被挂起,等待对方解除锁定。由于两个线程都在等待对方,就出现了死锁,线程将无限等下去;要避免同步问题,最好不要在线程之间共享数据。当然,这并不总是可行的。如果需要共享数据,就必须使用同步技术;确保一次只有一个线程访...