问题描述
在C#项目中,我编写了一个静态异步任务,以通过tmpt-relay发送电子邮件。 主要功能是调用此任务。 一切正常。 我的问题是我正在从vb.net项目中调用此函数,它也可以正常工作,已发送电子邮件,但vb.net挂在了c#-call
中我在c#中的代码
public class SmoffMail
{
public static string sRet;
public string sendMail(string mailto)
{
RunAsync(mailto).Wait();
return sRet;
}
static async Task RunAsync(string mailto){
MailjetClient client = new MailjetClient("419cce0b9807d1016642156966fc4ec1",....
sRet = "ok.....";
}
}
在vb.net中,我这样称呼它:
Public Class Form1
Private Sub Button1_Click(sender As Object,e As EventArgs) Handles Button1.Click
Dim smail As New smoff.Mailjet.SmoffMail
Dim i As Integer = 0
Dim sRet As String = ""
sRet = smail.sendMail("xxxxxxxh@bluewin.ch")
MsgBox(sRet)
End Sub
End Class
因此调用了smail.sendMail()函数,但该函数挂起了,代码中的下一行(msgBox)很麻烦。
感谢您的帮助
解决方法
您的C#应该如下所示:
def lambda_handler(event:,context:)
uri = URI("")
http = Net::HTTP.new(uri.host,uri.port)
http.use_ssl = true
req = Net::HTTP::Get.new(uri)
req.basic_auth "username","password"
res = http.request(req)
res.body
end
您的VB应该如下所示:
public class SmoffMail
{
static async Task<string> SendMailAsync(string mailto){
MailjetClient client = new MailjetClient("419cce0b9807d1016642156966fc4ec1",....
return "ok.....";
}
}
在等待2 GB附件上传时,让您的VB返回绘制UI,否则没有任何同步提示
,我找到了解决方案,问题不是我的代码,而是API Mailjet.client。 更改对此API的调用后,效果很好