如何异步任务和 Mailchimp API v3.0
How to async task and Mailchimp API v3.0
我正在尝试从 MailChimp 获取 MailChimp 列表集合。我已经设置了 MailChimp.net 示例中显示的过程以获取所有列表,但它在返回列表之前退出,除非我在调用任务后使用控制台读取。我如何才能完成这个看似简单的任务?
static void Main(string[] args)
{
AddUpdateMailChimp();
Console.Read();
}
static async void AddUpdateMailChimp()
{
lstIDs = await Get_MailChimp_Info();
for(int i = 0; i < lstIDs.Count; i++)
{
AddUpDateMailChimpAsync(lstIDs[i]);
}
}
private static async Task< List< string >> Get_MailChimp_Info()
{
var lstIDs = new List< string > ();
apikey = GetApiKey() //from config file
manager = new MailChimpManager(apikey);
//............below line is where it bombs unless I use a concole.Read in the main..........//
**IEnumerable< MailChimp.Net.Models.List> mailChimpListCollection = await manager.Lists.GetAllAsyunc().ConfigureAwait( continueOnCapturedContext: false);**
............catch statements
//.......foreach loop to get the list Ids
}
我最近遇到了这个问题。因为 AddUpdateMailChimp()
是异步的,所以 Main()
方法会在命中后立即继续执行,而不是等待结果。
方法 return 也是无效的,因此它被视为 fire-and-forget。
如果你希望能够等待它,那么它应该return一个任务。
这样,在Main()
你可以
var result = AddUpdateMailChimp().Result;
我正在尝试从 MailChimp 获取 MailChimp 列表集合。我已经设置了 MailChimp.net 示例中显示的过程以获取所有列表,但它在返回列表之前退出,除非我在调用任务后使用控制台读取。我如何才能完成这个看似简单的任务?
static void Main(string[] args)
{
AddUpdateMailChimp();
Console.Read();
}
static async void AddUpdateMailChimp()
{
lstIDs = await Get_MailChimp_Info();
for(int i = 0; i < lstIDs.Count; i++)
{
AddUpDateMailChimpAsync(lstIDs[i]);
}
}
private static async Task< List< string >> Get_MailChimp_Info()
{
var lstIDs = new List< string > ();
apikey = GetApiKey() //from config file
manager = new MailChimpManager(apikey);
//............below line is where it bombs unless I use a concole.Read in the main..........//
**IEnumerable< MailChimp.Net.Models.List> mailChimpListCollection = await manager.Lists.GetAllAsyunc().ConfigureAwait( continueOnCapturedContext: false);**
............catch statements
//.......foreach loop to get the list Ids
}
我最近遇到了这个问题。因为 AddUpdateMailChimp()
是异步的,所以 Main()
方法会在命中后立即继续执行,而不是等待结果。
方法 return 也是无效的,因此它被视为 fire-and-forget。
如果你希望能够等待它,那么它应该return一个任务。
这样,在Main()
你可以
var result = AddUpdateMailChimp().Result;