![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C#养成记
云大圣
天行健,君子以自强不息
展开
-
C#Socket网络Tcp通讯
Socket的通讯过程 服务器端: 01,申请一个socket 02,绑定到一个IP地址和一个端口上 03,开启侦听,等待接收连接 客户端: 01,申请一个socket 02,连接服务器(指明IP地址和端口号) 服务器端接收到连接请求后,产生一个新的socket(端口大于1024)与客户端建立连接并进行通信,原监听socket继续...原创 2019-03-05 11:24:13 · 1701 阅读 · 3 评论 -
C# Socket通讯连接测试
Socket通讯运行情况分为两种:客户端和服务器端同时运行在一台电脑上,这种情况下客户端和服务器端的ip地址得需要是建立在如:127.0.0.1的环网上,端口号建议设置为3000以上,否则设置的IP地址是无效的。 这种情况是客户端和服务器端分别运行在不同的电脑上:将网线连接上两台电脑,接着需要完成的是本地ip的设置,例如服务器的本地IP设置为192.168.1.20,那么本地的IP地址就是服...原创 2019-03-10 14:22:13 · 1299 阅读 · 0 评论 -
C#跨线程
通常,C#是不许跨线程赋值的,如:Form1中有个textbox, 若开辟一个新的线程来给这个textbox赋值时,会出现异常。 我这里有个简单办法。 大多数能赋值的控件都有invoke 方法,invode方法中不是要一个Delegate型参数么,那简单,可以随便找个.NET自定义的Delegate,如ThreadStart就行了,因此都可以这样做:...原创 2019-03-15 21:44:34 · 1294 阅读 · 0 评论 -
C#计算运行时间
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Threading;using System.Threadi...翻译 2019-03-15 22:18:15 · 835 阅读 · 0 评论 -
C#跨线程更新更新窗体控件
软件:VS2015平台:win10;坑:通过开启一个线程去更新显示窗体的运行时间,编译运行之后程序并没有发现什么问题,但是在关闭窗体的时候就直接出异常了,在开启的新线程种提示显示的更新的窗体已经被释放了,网上查看 了不少资料,什么用标志符去做if判断的啊,用this.dispose的啊,还有说是用this.beigininvoke的异步的方式,但是好像 对我来说就像是魔咒一样,通通不行...原创 2019-03-29 21:18:45 · 1340 阅读 · 0 评论 -
C#中ToString格式大全
输出格式 : 举例 :(字母后面的数字表示保留的位数) 输出结果例子: 货币: 2.5.ToString("C") ...原创 2019-03-30 19:20:45 · 933 阅读 · 0 评论 -
C#使用SDK主动采集图像
坑:使用C#主动采集图像接收返回的结构体的指针平台:软件:vs2015硬件:某品牌的工业相机主动采集的函数:CamAPI.gcGetImage(camid, DataBuffer, 500, Param); //获取一帧图像 //nID in 为设备ID值,范围从1~32 //pBuffer out 接收图像数据缓存,必须大于实...原创 2019-03-27 10:34:55 · 2053 阅读 · 0 评论 -
详解c#中AutoResetEvent
转载地址:详解c#中AutoResetEvent线程相关的概念1.线程同步ManualResetEventSet()方法将状态设置为有信号Reset()将其设置为无信号WaitOne()将阻塞到其有信号为止,若调用WaitOne的时刻就是有信号的,将不会阻塞AutoResetEvent与ManualResetEvent的区别是,AutoResetEvent.WaitOne()会...转载 2019-04-08 22:46:56 · 1412 阅读 · 0 评论 -
c#关于非托管内存的释放问题
硬件:大华sdk软件平台:win10+vs2015背景:近期在做大华工业相机SDK的采集的时候,用到Marshal.copy,将托管的代码转换成非托管的指针内存,由于没有及时释放内存指针,导致pc的内存一直上涨,通过查看代码之后发现是因为内存指针的原因,所以使用Marshal.FreeHGlobal(pData);去释放了托管的内存指针,在循环运行的时候才没有导致内存上涨,并且通过这此的...原创 2019-04-08 23:00:49 · 3218 阅读 · 0 评论