csharp List 深拷贝示例
时间: 2023-08-28 09:08:14 浏览: 41
好的,以下是一个 C# List 深拷贝的示例代码:
```
List<int> list1 = new List<int>();
list1.Add(1);
list1.Add(2);
list1.Add(3);
List<int> list2 = new List<int>(list1);
```
这样,list2 就是 list1 的深拷贝了。如果你需要对 list2 进行修改,不会影响到 list1。
相关问题
csharp invoke方法使用示例
下面是一个使用Invoke方法的示例:
```csharp
// 在UI线程之外的后台线程中执行
private void DoWork()
{
// 更新UI控件
textBox1.Invoke(new Action(() =>
{
textBox1.Text = "Hello, World!";
}));
}
```
在上面的示例中,我们在一个后台线程中执行DoWork方法,该方法通过Invoke方法将更新UI控件的操作放到UI线程中执行。具体来说,我们在Invoke方法中传入一个Action委托,该委托负责更新UI控件的文本属性。由于Invoke方法是在UI线程中执行的,因此可以安全地更新UI控件,避免了跨线程访问UI控件的问题。
csharp 等待信号的示例
以下是一个使用C#等待信号的示例代码:
```csharp
using System;
using System.Threading;
class Program
{
static void Main(string[] args)
{
var signal = new ManualResetEvent(false);
Console.WriteLine("等待信号...");
// 等待信号
signal.WaitOne();
Console.WriteLine("收到信号!");
}
}
```
这个示例使用`ManualResetEvent`类来等待信号。程序将输出“等待信号…”并等待信号到来,当收到信号后,输出“收到信号!”。你可以根据自己的需要来修改输出信息。如果你需要在其他线程中发送信号,可以调用`ManualResetEvent.Set()`方法来触发信号。