【C#】知识点漫谈1031

数组中删除元素

数组中删除一个元素,数组后面的元素要往前移,有两个方法:
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 ) ;
所以方法要与这个委托具有一样的参数。
这些方法向线程池的队列添加一个" 工作项 "

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值