【C#】知识点漫谈1031

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/It_sharp/article/details/83582761

数组中删除元素

数组中删除一个元素,数组后面的元素要往前移,有两个方法:
1、拷贝到另一数组
2、把删除的元素和最后的元素调换位置,把长度减一
动态数组为我们解决了这个问题,但是切记正序遍历的时候Remove元素,会报错,可以逆序遍历删除

正则表达式替换多个空格为其他符号

string ss = richTextBox1.Text;//待转换文本
richTextBox2.Text = new Regex("[\\s]+").Replace(ss, ",");

不要再UI线程(主线程)上操作控件

private void UICmd( string str)
{
	BeginInvoke(new Action(() =>
	{
		richTxtMsg.Text += str;
		richTxtMsg.Text += Environment.NewLine;
	})); 
}

计算限制的异步操作

1、异步的计算限制操作要用其他线程执行,用途有
编译代码、拼写检查、语法检查、电子表格冲计算
音频、或视频数据转码以及生成图像的缩略图

2、线程池
创建和销毁线程事一个昂贵的操作,要耗费大量的时间,太多的线程会浪费
内存资源。由于操作系统必须调度可运行的线程并执行上下文切换,所以太多的线程对
性能不利,CLR包含代码来管理它的线程池。一个CLR一个线程池,由所以AppDomain共享。
如果一个进程中加载了多个CLR,那么每个CLR都有它自己的线程池。

3、ThreadPool类定义的
QueueUserWorkItem( WaitCallback callBack )
QueueUserWorkItem(WaitCallback callBack , Object state );
这个委托的定义是这样的
delegate void WaitCallback( Object state ) ;
所以方法要与这个委托具有一样的参数。
这些方法向线程池的队列添加一个" 工作项 "

猜你喜欢

转载自blog.csdn.net/It_sharp/article/details/83582761
今日推荐