gpt4 book ai didi

c# - 在 Page_Load 中调用异步方法

转载 作者:行者123 更新时间:2023-11-30 21:53:06 25 4
gpt4 key购买 nike

static async void SendTweetWithSinglePicture(string message, string image)
{
var auth = new SingleUserAuthorizer
{
CredentialStore = new SingleUserInMemoryCredentialStore
{
ConsumerKey = "",
ConsumerSecret = "",
AccessToken = "",
AccessTokenSecret = ""
}
};

var context = new TwitterContext(auth);

var uploadedMedia = await context.UploadMediaAsync(File.ReadAllBytes(@image));
var mediaIds = new List<ulong> { uploadedMedia.MediaID };

await context.TweetAsync(
message,
mediaIds
);
}
protected void Page_Load(object sender, EventArgs e)
{
SendTweetWithSinglePicture("test", "path");
}

如何在 Page_Load 上调用 async 方法?

最佳答案

问题是您是否想让 Page_Load 方法异步。如果是这样:

protected async void Page_Load(object sender, EventArgs e)
{
await SendTweetWithSinglePicture("test", "path");
}

或者如果你不希望它是async:

protected void Page_Load(object sender, EventArgs e)
{
SendTweetWithSinglePicture("test", "path").Wait();
}

这确实需要您的 async 方法返回 Task ,因为它总是应该!(事件处理程序除外)

此问题可能是该方法在呈现页面之前未完成。如果必须,最好使方法同步,或使用 Page.RegisterAsyncTaskPage.ExecuteRegisteredAsyncTasks 注册任务。实际上,这也会卡住 Page_Load 方法。

protected void Page_Load(object sender, EventArgs e)
{
PageAsyncTask t = new PageAsyncTask(SendTweetWithSinglePicture("test", "path"));

// Register the asynchronous task.
Page.RegisterAsyncTask(t);

// Execute the register asynchronous task.
Page.ExecuteRegisteredAsyncTasks();
}

关于c# - 在 Page_Load 中调用异步方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34204450/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com