摘要:同步客户端套接字示例
下面的示例程序创建一个连接到服务器的客户端。该客户端是用同步套接字生成的,因此挂起客户端应用程序的执行,直到服务器返回响应为止。该应用程序将字符串发送到服务器,然后在控制台显示该服务器返回的字符串。 [c#]using system;using system.net;using system.net.sockets;using system.text; public cla......
摘要:实现异步请求
system.net 类使用 .net 框架的标准异步编程模型对 internet 资源进行异步访问。webrequest 类的 begingetresponse 和 endgetresponse 方法分别启动和完成对 internet 资源的异步请求。
注意 在异步回调方法中使用同步调用可能会导致严重的性能降低。通过 webrequest 及其子代实现的 internet 请求......
在.NET中的线程处理(2).net 框架提供了许多有助于您创建与管理多线程应用程序的对象.waithandle 对象可以帮助您响应其他线程执行的操作,尤其是在与非托管代码交互操作时.threadpool 为大多数任务提供最佳的基本线程创建与管理机制.monitor.mutex.interlocked 与 readerwriterlock 提供用于在较低级别上同步执行的机制.timer 是一种非常灵活的用来以特定时间间隔引发活动的方法,i/o 异步完成使用线程池在 i/o 工作完成后通知您,从而使您可以在此期间去做其他事情.
可以使用线程池来根据应用程序的需要更为有效地利用多个线程.许多应用程序使用多个线程,但这些线程经常在休眠状态中耗费大量的时间来等待事件发生.其他线程可能进入休眠状态,并且仅定期被唤醒以轮询更改或更新状态信息,然后再次进入休眠状态.使用线程池就可以为应用程序提供一个由系统管理的辅助线程池,从而使您可以集中精力于应用程序任务而不是线程管理.实际上,如果要执行一些需要多个线程的较短任务,则使用 threadpool 类是利用多个线程的最方便且最好的方法.使用线程池使系统能够不仅针对此进程而且针对计算机上的其他进程(您的应用程序对其一无所知)对此情况进行优化以达到更好的吞吐量.使用线程池使系统能够在考虑到计算机上的所有当前进程后对线程时间片进行优化. 【程序编程相关:
可拖动的无标题栏窗体,并且可以通过拉拽改】
线程池 [c#] 【推荐阅读:
正弦函数的绘制的一种方法。(坐标变换与放】
通过从托管代码调用 threadpool.queueuserworkitem(或者从非托管代码调用 corqueueuserworkitem)并传递用来包装要添加到队列中的方法的 waitcallback 委托来使用线程池.也可以通过使用 threadpool.registerwaitforsingleobject 并传递 waithandle(在向其发出信号或超时时,它将引发对由 waitortimercallback 委托包装的方法的调用)来将与等待操作相关的工作项排队到线程池中.在这两种情况下,线程池都使用或创建一个后台线程来调用回调方法. 【扩展信息:
按钮列的应用。(在datagrid中加入】
.net 框架出于以下几个目的使用线程池:异步调用.system.net 套接字连接.异步 i/o 完成以及计时器与注册的等待操作等等.
如果您知道调用方的堆栈与在排队任务执行期间执行的所有安全检查不相关,则还可以使用不安全的方法 threadpool.unsafequeueuserworkitem 与 threadpool.unsaferegisterwaitforsingleobject.queueuserworkitem 与 registerwaitforsingleobject 都会捕获调用方的堆栈,此堆栈将在线程池线程开始执行任务时合并到线程池线程的堆栈中.如果需要进行安全检查,则必须检查整个堆栈.尽管此检查提供了安全,但它还具有一定的性能开销.使用“不安全的”方法调用并不会提供绝对的安全,但它会提供更好的性能.
在应用程序域中只有一个 threadpool 对象,并且在您首次调用 threadpool.queueuserworkitem 时或者当计时器或已注册的等待操作将某一回调方法排队时,将创建线程池.一个线程监视所有已排队到线程池中的任务.当某项任务完成后,线程池中的线程将执行相应的回调方法.在对一个工作项进行排队之后将无法取消它....
下一页 摘要:获得存储区
存储区公开数据舱中的虚文件系统。isolatedstoragefile 提供了许多与存储区进行交互的方法。要创建和检索存储区,isolatedstoragefile 提供了三种静态方法。调用 getuserstoreforassembly 或 getuserstorefordomain 分别返回按用户和程序集隔离及按用户、域和程序集隔离的存储。这两种方法检索属于代码块(是从该代码块中......