Когато се опитам да създам проект, се показва следното съобщение за грешка.
Извикването е двусмислено между следните методи или свойства: „System.Threading.Tasks.Task.Run(System.Action)“ и „System.Threading.Tasks.Task.Run(System.Func)“
Как мога да поправя това?
public static class MaintananceManager
{
private static ThreadSafeSocialMediaList<Post> PostList = new ThreadSafeSocialMediaList<Post>();
private static ThreadSafeSocialMediaList<SocialUser> SocialUserList = new ThreadSafeSocialMediaList<SocialUser>();
private static List<IPersistentProvider> providers = new List<IPersistentProvider>();
private const int CACHESIZE = 1000;
static MaintananceManager()
{
providers.Add(new SqlServerProvider());
Task.Run(startMaintaining);
}
public static void PersistPosts(IEnumerable<Post> posts)
{
PostList.AddRange(posts);
}
public static void PersistSocialUsers(IEnumerable<SocialUser> users)
{
SocialUserList.AddRange(users);
}
public static SocialUser GetSocialUser(SocialMediaType mediaType,string socialMediaId)
{
foreach(var provider in providers)
{
try
{
return provider.GetSocialUser(mediaType, socialMediaId);
}
catch
{
}
}
return null;
}
private static void persistPosts()
{
var liste = PostList.Flush();
foreach(var provider in providers)
{
provider.SavePosts(liste);
}
}
private static void persistUsers()
{
var liste = SocialUserList.Flush();
foreach (var provider in providers)
{
provider.SaveSocialUsers(liste);
}
}
private static void startMaintaining()
{
while(true)
{
if (PostList.Count > CACHESIZE)
persistPosts();
if (SocialUserList.Count > CACHESIZE)
persistUsers();
Thread.Sleep(60000);
}
}
}
private static void startMaintaining()
наprivate static Task startMaintaining()
и заменитеThread.Sleep(60000);
сawait Task.Delay(60000).ConfigureAwait(false);
, за да се възползвате напълно на ТЗЛ. - person gfache   schedule 24.01.2018