C#使用记录

0

如何在Visual studio中修改所使用C#语言的版本

0.1 C#项目代码规范

C#项目代码规范
C# 编码约定

1 调用参数

C#中传值调用和传引用调用的理解

2 异步操作

//声明委托类型
private delegate int MyMethod(int x);
//定义实际异步方法
private int method(int x)
{
	Thread.Sleep(10000);
	return 1000;
}
// 异步调用回调
private void MethodCompleted(IAsyncResult asyncResult)
{
	if (asyncResult == null) return;
	this.CurrentPosition.Dispatcher.Invoke(new Action(() =>
	{
	CurrentPosition.Text = (asyncResult.AsyncState as MyMethod).EndInvoke(asyncResult).ToString();
	}));
}

private void button1_Click(object sender, EventArgs e)
{
	MyMethod my = method;
	//BeginInvoke 第一个为委托的参数(如果委托没有参数,则没有改参数),第二个为异步回调函数,第三个为委托的实例
	IAsyncResult asyncResult = my.BeginInvoke(5, MethodCompleted, my);
}

在这里插入图片描述

C# Action和Func的用法详解
Delegate的BeginInvoke()
C#线程操作常见的六大操作方法
当在.NET4.0中使用异步函数时,会提示错误“,

Task<ProgressDialogController>”未包含“GetAwaiter”的定义

原因是.NET 4.5之后才支持该应用,如果要在.NET4.0中使用,需要安装Microsoft.Bcl.Async程序包

  private async void Button_Click(object sender, RoutedEventArgs e)
        {
            var controller = await this.ShowProgressAsync("Please wait...", "Progress message");
            controller.SetIndeterminate();
            MyMethod my = method;
            IAsyncResult asyncResult = my.BeginInvoke(5,MethodCompleted, my);
        }

3 数据转换

//meterPara.HumidityTemp.T1为float32的二进制编码
DataT1.Text = BitConverter.ToSingle(BitConverter.GetBytes(meterPara.HumidityTemp.T1),0).ToString();
DataT2.Text = BitConverter.ToSingle(BitConverter.GetBytes(meterPara.HumidityTemp.T2), 0).ToString();

4 在线程中更新界面

 Thread th = new Thread(() =>
                {
                    //listBox1.Items.Add(Thread.CurrentThread.Name);
                    WindowsFormsSynchronizationContext context = new WindowsFormsSynchronizationContext();
                    context.Send((obj) =>
                    {
                        button_StartRWTest.Text = "停止测试";
                    }, null);
                    
                });
                th.Start();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值