COM线程单元】的更多相关文章

TServerSocket阻塞线程单元,希望对你有所帮助.需要注意的是:1.如果你使用TServerSocket的stNonBlocking模式,重写TServerClientThread线程时要重载TServerClientThread的ClientExecute过程,写你自己的处理过程:2.如果在线程内部调用外部的过程,建议使用同步化方法:3.线程访问线程内部变量的速度远远高于线程访问线程内部变量的速度如果有问题的话,可以和我联系 Email: rurality@21cn.com //***…
用到临界区 保护写日志的函数: 递归函数 删除目录下的所有文件: 循环创建或判断FTP的目录: 可改进的地方:循环压缩深层次目录的所以文件: 实现断点续传,或断点下载: {******************************************************************************* Copyright (C), 2014-2020, aicaipiao File name: UFtpContentThd.pas Author: lipingchen…
关于这类问题网上搜索会有很多解决方案,但基本的意思都相差不大,大致问题出于启用线程时调用类似剪贴板Clipboard.SetDataObject出错,我把我的测试代码展现下: 解决方案:只需将thread.SetApartmentState(ApartmentState.STA);反注释就可以了. 出现的原因: 单元是进程内部具有相同线程访问要求的对象的逻辑容器.同一单元中的所有对象都可以接收从该单元中的任何线程发出的调用..NET Framework 不使用单元,托管对象自己负责以线程安全的方…
1.ApartmentState 指定的单元状态 Thread. 命名空间:   System.Threading程序集:  mscorlib(位于 mscorlib.dll) 成员       成员名称 说明   MTA Thread 将创建并进入一个多线程的单元.   STA Thread 将创建并进入一个单线程单元.   Unknown ApartmentState 未设置属性. 备注   单元是进程内部的对象共享相同的线程访问要求的逻辑容器. 在同一单元中的所有对象可以都接收来自与单元中…
节选自C#高级编程 不管是单线程单元还是多线程单元,一个线程只能属于一个单元. 1) 单线程单元(apartment, 寓所,套间) 单线程单元与它拥有的线程是一对一的关系.COM对象在编写时不是线程安全的,也就是说编写COM对象时可以不考虑线程安全,COM库通过消息处理机制帮助实现线程同步. 2) 多线程单元(apartment, 寓所,套间) 多线程单元与它拥有的线程是一对多的关系.COM对象在编写时是线程安全的,也就是说编写COM对象时需要自己实现线程安全,或者COM的使用者实现同步.…
第三部分:使用多线程 1.  单元模式和Windows Forms 单元模式线程是一个自动线程安全机制, 非常贴近于COM——Microsoft的遗留下的组件对象模型.尽管.NET最大地放弃摆脱了遗留下的模型,但很多时候它也会突然出现,这是因为有必要与旧的API 进行通信.单元模式线程与Windows Forms最相关,因为大多Windows Forms使用或包装了长期存在的Win32 API——连同它的单元传统. 单元是多线程的逻辑上的“容器”,单元产生两种容量——“单的”和“多的”.单线 程…
1.  单元模式和Windows Forms 单元模式线程是一个自动线程安全机制, 非常贴近于COM——Microsoft的遗留下的组件对象模型.尽管.NET最大地放弃摆脱了遗留下的模型,但很多时候它也会突然出现,这是因为有必要与旧的API 进行通信.单元模式线程与Windows Forms最相关,因为大多Windows Forms使用或包装了长期存在的Win32 API——连同它的单元传统. 单元是多线程的逻辑上的“容器”,单元产生两种容量——“单的”和“多的”.单线 程单元只包含一个线程:多…
当WPF应用程序运行时,默认会创建一个UI主线程(因为至少需要一个),并在该UI线程上启动消息循环.直到消息循环结束,应用程序就随即退出.那么,问题就来了,能不能创建新线程,然后在新线程上打开一个新窗口实例?这样可以让不同窗口运行在不同的线程上,一定程度上可以相互“独立”. 其实呢,完全的独立运转似乎不太可能,毕竟嘛,线程是抢占 CPU 时间片的,即各个线程间是交替运行的,现在处理器基本是N核的,可以结合并发一起用(在.net 中,使用 Task 可以自动并发).不管怎么说吧,对UI的响应能力应…
在多线程单元模式(MTA)中为应用程序使用.NET OpenFileDialog和SaveFileDialog 下载FileDialogsThreadAppartmentSafe_v1.zip 如果您将C#用于桌面开发项目,您可能知道Win32打开和保存文件对话框的默认C#包装类的强大功能.它们易于使用,您将始终拥有正确的Windows风格. 但也存在一些问题,其中一些问题在本文中进行了讨论. 背景 一旦开发了更大的应用程序,您可能会注意到,一旦将调用者线程单元状态设置为MTA,默认 OpenF…
http://blog.csdn.net/oyi319/article/details/6851371 一.六种多线程方法 .NET Framework2.0框架提供了至少4种方式实现多线程,它们是"BackgroundWorker"组件.委托的异步调用.线程池ThreadPool以及线程类Thread:.NET Framework 4.0增加了任务并行库TPL和PLINQ技术,可利用Task和并行计算的方法实现.下面列举这6种方法. 1.      BackgroundWorker组…
概述 线程主要学习什么,通过一个月的摸索.终于总结出来了:学习Thread类涉及到学习Thread类涉及到线程单元状态: ApartmentState.GetApartmentState\SetApartmentState内存屏障:VolatileWrite().VolatileRead().MemoryBarrier线程共享变量原子操作:interLoacked() 具有原子性.可见性.有序性.线程本地变量的存储:LocalThread.ThreadStatic.Lazy<T>.数据曹(Al…
设置控件的值 /// <summary> /// 根据ID,NAME双重判断并设置值 /// </summary> /// <param name="tagName"></param> /// <param name="id"></param> /// <param name="value"></param> private void SetTxt(s…
ArcGIS Engine 中的多线程使用 原文链接 http://anshien.blog.163.com/blog/static/169966308201082441114173/   一直都想写写AE中多线程的使用,但一直苦于没有时间,终于在中秋假期闲了下来.呵呵,闲话不说了,进入正题! 大家都了解到ArcGIS中处理大数据量时速度是相当的慢,这时如果你的程序是单线程的,那可就让人着急坏了,不知道处理到什么地步,不能操作其他的功能,无奈~~如果在这时你能够想到用多线程技术,那就来试试该如何…
多线程的基本概念 win 98/nt/2000/xp 是个多任务操作系统,也就是:一个进程可以划分为多个线程,每个线程轮流占用cpu 运行时间和资源,或者说,把cpu 时间划成片,每个片分给不同的线程,这样,每个线程轮流的“挂起”和“唤醒”,由于时间片很小,给人的感觉是同时运行的. 多线程带来如下好处:(自己阅读) 1)避免瓶颈: 2)并行操作: 3)提高效率: 在多线程中,通过优先级管理,可以使重要的程序优先操作,提高了任务管理的灵活性. 另一方面,在多cpu 系统中,可以把不同的线程在不同的…
转自:http://www.cnblogs.com/rijing2004/archive/2007/09/14/howaspnetwork.html 前言 关于ASP.NET的底层的工作机制,最近园子里讨论的甚是火热.相信很多人都看过Rick Strahl先生的一篇经典之作:A low-level Look at the ASP.NET Architecture,经Rick Strahl先生同意,我把他的这篇文章翻译成中文,希望能够给想深入了解ASP.NET工作机制的朋友一点帮助.  特别说明:…
Posted on 2007-07-07 10:06 桦林 阅读(33100) 评论(10) 编辑 收藏 [STAThread]STAThread:Single     Thread     Apartment Thread.(单一线程单元线程)[]是用来表示Attributes: [STAThread]是一种线程模型,用在程序的入口方法上(在C#和VB.NET里是Main()方法),来指定当前线程的ApartmentState 是STA.用在其他方法上不产生影响.在aspx页面上可以使用Asp…
http://blog.csdn.net/augusdi/article/details/12833235 CUDA从入门到精通(零):写在前面 在老板的要求下.本博主从2012年上高性能计算课程開始接触CUDA编程,随后将该技术应用到了实际项目中.使处理程序加速超过1K,可见基于图形显示器的并行计算对于追求速度的应用来说无疑是一个理想的选择. 还有不到一年毕业.怕是毕业后这些技术也就随毕业而去,准备这个暑假开辟一个CUDA专栏,从入门到精通.步步为营.顺便分享设计的一些经验教训.希望能给学习C…

CCR

不用任何与创建线程.资源互斥有关系的API写多线程程序 这次的例子,是一个很简单的控制台,她将面对瞬间提交的百万的数据,而面不改色(CPU.内存非常平稳),队列中始终只保存最新的数据,每次只处理cpu 个数据(我的机器是双核的,所以,在我这里,就是每个CPU一个线程,真正的并行运行哦....),OK不废话,进入正题: 呃,既然是实例,那么就直接看代码好了: using System; using System.Collections.Generic; using System.Linq; usi…
我们创建一个wpf应用程序,我们把里面的xaml文件全部删除,添加一个新类: 如下图: 然后我们cs文件中的代码: using System; using System.Collections.Generic; using System.Text; using System.Windows.Controls; using System.Windows; using System.Windows.Media; using System.Windows.Shapes; namespace 无xaml…
最近写paintsnow::start时出现了一个非常麻烦的BUG,程序的Release版本大约每运行十几次就会有一次启动时崩溃(Debug版本还没崩溃过),崩溃点也不固定.经过简单分析之后,确定是线程同步的问题.于是便修改了线程通信的代码,并使用pthread_mutex_lock/unlock来防止冲突.重新编译后,崩溃频率有所减少.但是每运行约四十次,还是免不了崩溃一次,而且冷启动时崩溃概率更大. 在VC中的Release版本中设置Generate Debug Info后,重复多次运行程序…
从底层了解ASP.NET体系结构 原文:http://blog.csdn.net/zhoufoxcn/article/details/1890158 Java体系架构的书多如牛毛,比如SSH架构什么的,其实仔细看来,这些java架构其实在.NET领域都有对应的架构,而且实现机理大同小异,只是没见到有成书的著作出来,或者至少没有SSH这么为人所知. 搜集一些这方面的文档,放在这里. -------------------------------------------------------- 导…
一 简介 官方介绍:SuperSocket 是一个轻量级, 跨平台而且可扩展的 .Net/Mono Socket 服务器程序框架.你无须了解如何使用 Socket, 如何维护 Socket 连接和 Socket 如何工作,但是你却可以使用 SuperSocket 很容易的开发出一款 Socket 服务器端软件,例如游戏服务器,GPS 服务器, 工业控制服务和数据采集服务器等等. 地址:http://www.supersocket.net/ 目前所阅读的版本是:1.6.4.0 本笔记的基本思路为:…
Prerequisite:C++ 程序员,熟windows计划,熟Win32 Dll,了解windows注册表. 笔者:割者 上一篇文章中,我们定义了COM接口.通过编译生成了四个文件,本文使用这四个文件生成proxy/stub DLL.因为COM接口能够跨线程单元,跨进程.跨网络进行使用,因此,我们要解决一个參数数据传递的问题. proxy/stub DLL就是为了完毕这个任务,当然.使用类型库也能够完毕,这里不做讨论.这里主要是将通过proxy/stub DLL的方式.在COM中.这个过程成…
一 简介 官方介绍:SuperSocket 是一个轻量级, 跨平台而且可扩展的 .Net/Mono Socket 服务器程序框架.你无须了解如何使用 Socket, 如何维护 Socket 连接和 Socket 如何工作,但是你却可以使用 SuperSocket 很容易的开发出一款 Socket 服务器端软件,例如游戏服务器,GPS 服务器, 工业控制服务和数据采集服务器等等. 地址:http://www.supersocket.net/ 目前所阅读的版本是:1.6.4.0 本笔记的基本思路为:…
本人文笔差.还是直接上代码吧.(本文假设你对WPF中的Dispatcher有一定的了解) 你觉得下面的代码可以正常执行吗? private void Button_Click(object sender, RoutedEventArgs e) { Thread t = new Thread(() => { while (true) { new Window().Show(); Thread.Sleep(); } }); t.Start(); } WPF的操作UI的线程必须是单线程单元模型(STA…
http://www.cnblogs.com/Murphieston/p/5577836.html 本文是为了加强记忆而写,这里写的大多数内容都是在编程的日常工作中使用频率不高的东西,但是又十分重要. ---Murphy ,构造和析构函数: a,构造函数: 一般基于TComponent组件的派生类,都应该使用overload关键字进行继承,Delphi中的对象没有什么复合的概念,在设计时,从简便的角度出发 一般都设计为耦合性较强,但是使用简单的派生类即可.构造函数不是必写的,除非“复合”这样的对…
在再度温习Java5的并发编程的知识点时发现,首要的就是把Runnable.Callable.Executor.Future等的关系搞明白,遂有了下述小测试程序,通过这个例子上述三者的关系就一目了然了. 在java5以后,一个可以调度执行的线程单元可以有三种方式定义: Thread.Runnable.Callable,其中Runnable实现的是void run()方法,Callable实现的是 V call()方法,并且可以返回执行结果,其中Runnable可以提交给Thread来包装下,直接…
当Canvas上的UI元素变化时,会重新生成网格并向GPU发起绘图调用,从而显示UI.划分画布:1.每块画布上的元素都与其他画布的元素相隔离,使用?工具来切分画布?,从而解决ui的批处理问题.2.也可以通过嵌套画布来解决,这样能允许设计师创建大型分层ui,子画布内容与父画布和同级画布相互隔离.保持自带几何体,执行自己的批处理.3.当使用子画布分离画布时,尝试根据画布更新时间来分组.例如:分离动态元素和静态元素. ==========================================…
一.在任务并行库中,如果对任务运行Wait.WaitAny.WaitAll等方法,或者求Result属性,都能捕获到AggregateException异常. 可以将AggregateException异常看做是任务并行库编程中最上层的异常. 在任务中捕获的异常,最终都应该包装到AggregateException中.一个任务并行库异常的简单处理示例如下: static void TestTwo() { Task t1= Task.Factory.StartNew(() => { throw n…
原文地址:http://www.cnblogs.com/rijing2004/archive/2007/09/14/howaspnetwork.html 前言关于ASP.NET的底层的工作机制,最近园子里讨论的甚是火热.相信很多人都看过Rick Strahl先生的一篇经典之作:A low-level Look at the ASP.NET Architecture,经Rick Strahl先生同意,我把他的这篇文章翻译成中文,希望能够给想深入了解ASP.NET工作机制的朋友一点帮助.  特别说明…