Multi Threading, Task.Run Error 'The call is ambiguous between the following methods or properties:

When I try to create a project, the following error message is displayed.

The call is ambiguous between the following methods or properties: 'System.Threading.Tasks.Task.Run (System.ction)' and 'System.Threading.Tasks.Task.Run (System.Func)'

How can i fix this?

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); } } } 
+7
multithreading c # ambiguous task
source share
1 answer

Here are some ways to pass this as a valid Action :

 Task.Run(() => startMaintaining()); Task.Run((Action)startMaintaining); Task.Run(new Action(startMaintaining)); 
+18
source share

All Articles