使用V s 新建项目 类库 ,
553.png
在新建的类中, 添加自己的 定义的方法
要对外暴露的方法定义为public 不暴露的私有方法定义为private
因为封装的dll 要与Electron 框架的桌面应用对接,所以尝试了 封装了异步方法
在网上简单的了解一下异步编程, 他的作用和thread 相似 异步的出现是thread 的升级版 thread 对有返回值的 类型的委托 没有办法解决, 而async 他做到了,( 对于有返回值类型的委托使用Task对象就能简单的解决),
1.async:修饰符可将方法、lambda 表达式或匿名方法指定为异步。
2.await:运算符应用于异步方法中的任务,会让当前方法等待其挂起的方法执行完毕后再继续执行当前方法。await关键字只能在async声明的异步方法中使用,方法返回类型必须是Task<T>或Task.
3 返回值类型, 返回类型只能是void、Task、Task<T> ,如果你要执行的异步方法是有返回值的,那么泛型T就定义为你所需返回的类型
具体的 方法实现如下
//返回类型= void的
public async static void testVoidAsync()
{
await Task.Run(() =>
{
Console.WriteLine("void 类型的异步方法");
});
}
//返回类型= task
public async static Task testTaskasync()
{
await Task.Run(() =>
{
Console.WriteLine("Task 类型异步方法");
});
}
//返回类型是Task<T> <object> 可以为任意类型, 必须要有返回值
public async static Task<int> testTaskT()
{
await Task.Run(() =>
{
Console.WriteLine("Task<T>类型异步");
});
return 3;
}
//返回类型是Task<T>且带参数的 object 可以为任意类型
public static async Task<object> testAsyncWithParm(object input)
{
//以参数为数组 为例
String[] paramets = (String[])input;
string adress;
string phoneNum;
int age;
await Task.Run(() =>
{
for (int i = 0; i < paramets.Length; i++)
{
adress = paramets[0].ToString();
phoneNum = paramets[1].ToString();
age = Convert.ToInt32(paramets[2]);
}
});
return null;
}
异步编程简单的了解到此。
言归正传到dll 库封装了, 方法已经都准备好了,只欠dll 和demo 验证。 代码编写完成后, 右键解决方案 → 重新生成解决方案或用(F6)快捷键 。
在 项目中使用自己生成的dll
右键 解决方案 →添加引用
找不到怎么添加如图
731.png
找到生成dll 的目录
364.png
添加即可。
引用添加好了 就说调用吧 , 在 引用中 添加 testdll 引用, 实例化对象 , 调用方法。
以代码中最后一个带参的方法为例简单看一下
using testDll;
private void button3_Click(object sender, EventArgs e)
{
Test test = new Test();
string[] parm = new string[] { " 深圳市龙岗区", "1312850XXXX", "28" };
Task t1 = test.testAsyncWithParm(parm);
}
网友评论