使用V s 新建項目 類庫 ,

553.png
在新建的類中, 添加自己的 定義的方法
要對外暴露的方法定義為public 不暴露的私有方法定義為private
因為封裝的dll 要與Electron 框架的桌面應(yīng)用對接,所以嘗試了 封裝了異步方法
在網(wǎng)上簡單的了解一下異步編程, 他的作用和thread 相似 異步的出現(xiàn)是thread 的升級版 thread 對有返回值的 類型的委托 沒有辦法解決, 而async 他做到了,( 對于有返回值類型的委托使用Task對象就能簡單的解決),
1.async:修飾符可將方法、lambda 表達式或匿名方法指定為異步。
2.await:運算符應(yīng)用于異步方法中的任務(wù),會讓當前方法等待其掛起的方法執(zhí)行完畢后再繼續(xù)執(zhí)行當前方法。await關(guān)鍵字只能在async聲明的異步方法中使用,方法返回類型必須是Task<T>或Task.
3 返回值類型, 返回類型只能是void、Task、Task<T> ,如果你要執(zhí)行的異步方法是有返回值的,那么泛型T就定義為你所需返回的類型
具體的 方法實現(xiàn)如下
//返回類型= 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>且?guī)?shù)的 object 可以為任意類型
public static async Task<object> testAsyncWithParm(object input)
{
//以參數(shù)為數(shù)組 為例
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 庫封裝了, 方法已經(jīng)都準備好了,只欠dll 和demo 驗證。 代碼編寫完成后, 右鍵解決方案 → 重新生成解決方案或用(F6)快捷鍵 。
在 項目中使用自己生成的dll
右鍵 解決方案 →添加引用

730.jpg
找不到怎么添加如圖

731.png
找到生成dll 的目錄

364.png
添加即可。
引用添加好了 就說調(diào)用吧 , 在 引用中 添加 testdll 引用, 實例化對象 , 調(diào)用方法。
以代碼中最后一個帶參的方法為例簡單看一下
using testDll;
private void button3_Click(object sender, EventArgs e)
{
Test test = new Test();
string[] parm = new string[] { " 深圳市龍崗區(qū)", "1312850XXXX", "28" };
Task t1 = test.testAsyncWithParm(parm);
}