一、类型转换
创建项目
最后选择框架,点击创建即可
编写一段代码并运行 (基础类型转换)
引用类型转换
这里有一种新的转换写法
当发生无法转换情况时编译器会有提示,我们可以通过以下方法添加显示转换(也可以在此行下按下Alt+Enter实现同样效果)
二、多线程
创建项目(同上,略)并右键设为启动项目
编码并测试
创建子线程
using System;
namespace MultiThread {
class Program {
static void Main(string[] args) {
Thread t = Thread.CurrentThread;//获取当前线程,也即主线程
t.Name = "MainThread";
Thread childThread = new Thread(new ThreadStart(ChildThreadMethod));//创建子线程并调用其方法
childThread.Start();//开启线程
Console.WriteLine(t.Name);
}
private static void ChildThreadMethod() {
Console.WriteLine("Child Thread running");
}
}
}
我们在多次执行后发现执行顺序是不固定的(因为是俩个不同的线程在执行所以顺序不固定了)
进一步修改代码
using System;
namespace MultiThread {
class Program {
static void Main(string[] args) {
Thread t = Thread.CurrentThread;//获取当前线程,也即主线程
t.Name = "MainThread";
Thread childThread = new Thread(new ThreadStart(ChildThreadMethod));//创建子线程并调用其方法
childThread.Start();//开启线程
while (true) {
Thread.Sleep(1000);
Console.WriteLine(t.Name);
}
}
private static void ChildThreadMethod() {
while (true)
{
Thread.Sleep(1000);
Console.WriteLine("Child Thread running");
}
}
}
}
线程中断(只有子线程全部执行完成后,主线程才会结束)
using System;
namespace MultiThread {
class Program {
static void Main(string[] args) {
Thread t = Thread.CurrentThread;//获取当前线程,也即主线程
t.Name = "MainThread";
Thread childThread = new Thread(new ThreadStart(ChildThreadMethod));//创建子线程并调用其方法
childThread.Start();//开启线程
//while (true) {
// Thread.Sleep(1000);
// Console.WriteLine(t.Name);
//}
//childThread.Abort();//强制性中断,已弃用
Thread.Sleep(3000);
isRun = false;
}
private static bool isRun=true;
private static void ChildThreadMethod() {
while (isRun)
{
Thread.Sleep(1000);
Console.WriteLine("Child Thread running");
}
}
}
}