private List <Message> GetUserActivity()
        {
            if (SelectedSocialNetworks == null)
            {
                return(null);
            }

            List <Message> messages = new List <Message>();

            if (SelectedSocialNetworks.Contains(SocialNetworks.Twitter))
            {
                TwitterDataProvider twitterProvider = new TwitterDataProvider(TwitterInformation.ApiInfo);
                foreach (UserAccountInfo accountInfo in TwitterInformation.UserAccounts)
                {
                    try
                    {
                        messages.AddRange(twitterProvider.GetUserTweets(accountInfo.UserID, accountInfo.ScreenName, MessageCount));
                    }
                    catch (ResourceNotFoundException)
                    {
                        _ctrlErrorDescription.InnerText += String.Format("{0}: {1}", SocialMediaResource.ErrorUnknownTwitterAccount, accountInfo.ScreenName);
                        _ctrlErrorDescriptionContainer.Style.Add(System.Web.UI.HtmlTextWriterStyle.Display, "block");
                        this.InvalidTwitterAccountExist = true;
                    }
                }
            }

            return(messages.OrderByDescending(m => m.PostedOn).Take(MessageCount).ToList());
        }
예제 #2
0
        public void MultiThreadTest()
        {
            var ai = new TwitterApiInfo
            {
                ConsumerKey    = "hYd5c8gYxhy3T2Nvj8wLA",
                ConsumerSecret = "KZGPvAN6kgioWlf0zrGYOzKevLatexuuuJlIhJQg"
            };

            var provider = new TwitterDataProvider(ai);

            var messages = provider.GetUserTweets(40648902, null, 10);
            //List<Message> messages = provider.GetUserHomeTimeLine(10);

            Action dlgFirstThread  = StartFirstThread;
            Action dlgSecondThread = StartSecondThread;

            var arFirstThread  = dlgFirstThread.BeginInvoke(null, null);
            var arSecondThread = dlgSecondThread.BeginInvoke(null, null);

            var waitHandles = new WaitHandle[] { arFirstThread.AsyncWaitHandle, arSecondThread.AsyncWaitHandle };

            //WaitHandle[] waitHandles = new WaitHandle[] { arFirstThread.AsyncWaitHandle };

            WaitHandle.WaitAll(waitHandles);

            Console.WriteLine("Operation complete. Press any key to close window...");
            Console.ReadLine();
        }