• 讲故事谈.NET委托一个C#睡前故事

    从前,在南方一块奇异的土地上,有个工人名叫彼得,他非常勤奋,对他的老板总是百依百顺。但是他的老板是个吝啬的人,从不信任别人,坚决要求随时知道彼得的工作进度,以防止他偷懒。但是彼得又不想让老板呆在他的办公室里站在背后盯着他,于是就对老板做出承诺:无论何时,只要我的工作取得了一点进展我都会及时让你知道。彼得通过周期性地使用“带类型的引用”(原文为:“typed reference” 也就是delegate??)“回调”他的老板来实现他的承诺,如下: class Worker { public void Advise(Boss boss) { _boss = boss; } public void DoWork() { Console.WriteLine(“工作: 工作开始”);

    0
    51
    41KB
    2009-03-11
    9
  • NET平台下可复用的Tcp通信层实现

    2006年已经来临,回首刚走过的2005,心中感慨万千。在人生和生活的目标上,有了清晰明确的定位,终于知道了自己喜欢什么样的生活,喜欢什么样的生活方式;在技术上,成熟了不少,眼界也开阔的不少,从面向对象到组件、从.Net到J2EE、从微软到开源,颇有收获。特别值得一提的是,认识了Rod Johnson这个大牛人,也终于在自己的项目中正式使用Spring.net框架来开发了,这确实是一个优秀的框架。而在已经到来的2006年,我有一个主要目标就是B/S应用开发,来填补自己在企业级开发上的另一半空白。 以前就很想将自己在Tcp通信层的开发心得、经验共享出来,但一直没有实现,究其原因,还是自己太懒了。今天终于找到一个时机,写下这篇文章,也算是对2005年的另一种形式的回忆吧。 绝大多数C/S(包括多层)结构的系统中,终端与服务器的通信都是通过Tcp进行的(使用Udp的也有一些,但是其相对于Tcp简单许多,所以不在这里的讨论之列)

    4
    90
    969KB
    2009-03-11
    4
  • c#(Socket)异步套接字代码示例

    下面的示例程序创建一个连接到服务器的客户端。该客户端是用异步套接字生成的,因此在等待服务器返回响应时不挂起客户端应用程序的执行。该应用程序将字符串发送到服务器,然后在控制台显示该服务器返回的字符串。 C# using System; using System.Net; using System.Net.Sockets; using System.Threading; using System.Text;

    4
    107
    33KB
    2009-03-11
    9
  • NET:一段比较经典的多线程学习代码

    一段比较经典的多线程学习代码。   1、用到了多线程的同步问题。   2、用到了多线程的顺序问题。   如果有兴趣的请仔细阅读下面的代码。注意其中代码段的顺序,思考一下,这些代码的顺序能否互相调换,为什么?这应该对学习很有帮助的。为了演示,让所有的线程都Sleep了一段时间。

    0
    51
    28KB
    2009-03-11
    9
  • c#多线程线程池和异步编程

    我们将在这里进一步讨论一些.NET类,以及他们在多线程编程中扮演的角色和怎么编程。它们是:   System.Threading.ThreadPool 类   System.Threading.Timer 类   如果线程的数目并不是很多,而且你想控制每个线程的细节诸如线程的优先级等,使用Thread是比较合适的;但是如果有大量的线程,考虑使用线程池应该更好一些,它提供了高效的线程管理机制来处理多任务。 对于定期的执行任务Timer类是合适的;使用代表是异步方法调用的首选。

    3
    368
    35KB
    2009-03-11
    50
  • 跨线程进行Windows窗体控件的访问

    访问 Windows 窗体控件本质上不是线程安全的。如果有两个或多个线程操作某一控件的状态,则可能会迫使该控件进入一种不一致的状态。还可能出现其他与线程相关的 bug,包括争用情况和死锁。确保以线程安全方式访问控件非常重要。 .NET Framework 有助于在以非线程安全方式访问控件时检测到这一问题。在调试器中运行应用程序时,如果创建某控件的线程之外的其他线程试图调用该控件,则调试器会引发一个 InvalidOperationException,并提示消息:“从不是创建控件 control name 的线程访问它。

    0
    118
    30KB
    2009-03-11
    50
  • 多线程,重叠IO,异步读写 命名通道服务器源码

    #include <windows.h> #include <stdio.h> #define NUM_PIPES 5 #define BUFFER_SIZE 256 void main( void ) { HANDLE PipeHandles[NUM_PIPES]; DWORD BytesTransferred; CHAR Buffer[NUM_PIPES][BUFFER_SIZE]; INT i; OVERLAPPED Ovlap[NUM_PIPES]; HANDLE Event[NUM_PIPES]; // 对每一个通道句柄实例来说,当它进行在读写操作时,代码必须维持通道的当前状态 // 这个可以用DataRead这个变量数组来实现.当我们确定了管道的当前状态,代码能够 // 确定下一个I/O操作是什么 BOOL DataRead[ NUM_PIPES ]; DWORD Ret; DWORD Pipe;

    5
    141
    33KB
    2009-03-11
    10
  • C#.net同步异步SOCKET通讯和多线程总结

    服务端: using System.Net; using System.Net.Sockets; using System.Text; using System.Threading; Thread mythread ; Socket socket; // 清理所有正在使用的资源。 protected override void Dispose( bool disposing ) { try   {    socket.Close();//释放资源    mythread.Abort ( ) ;//中止线程   }   catch{ }

    5
    146
    77KB
    2009-03-11
    10
  • Socket开发之异步Socket

    .NET Socket开发之异步Socket   在基于.NET的网络服务端的开发中,我们用到和听到的最多的恐怕就是异步Socket了。异步Socket的性能比同步高出很多,但是编写代码比较复杂。因此异步Socket也是网络上讨论比较多的话题。   今天,我们就来讨论一下如何用异步Socket开发网络应用。在此之前我们先讨论两个问题。

    0
    63
    26KB
    2009-03-11
    10
  • [C#通信二]C#.net同步异步SOCKET通讯和多线程总结

    C#.net同步异步SOCKET通讯和多线程总结 同步套接字通信 Socket支持下的网上点对点的通信 服务端实现监听连接,客户端实现发送连接请求,建立连接后进行发送和接收数据的功能 服务器端建立一个socket,设置好本机的ip和监听的端口与socket进行绑定,开始监听连接请求,当接收到连接请求后,发送确认,同客户端建立连接,开始与客户端进行通信。

    5
    221
    54KB
    2009-03-11
    32
  • 分享王者

    成功上传51个资源即可获取
关注 私信
上传资源赚积分or赚钱