私はWindows Phone 7用のツイッターアプリケーションを開発しており、プロトタイプを行っています。私はアプリケーション上のいくつかのオブジェクトをminipulatingときに問題に出くわしました。 Dispatcher.BeginInvoke(new ThreadStart (doProgressBar));
私は、バックグラウンドワーカースレッドを使ってdoProgressBar()
を実行しようとしましたが、同じ効果があります。以下のコードはちょうどハングします(何も動かず、検索は更新されません)。ショーにブレークポイントをつけて、それがdoProgressBar()
に当たると正しく動作しているようです。Windows Phone 7スレッドの問題
何が間違っているのか理解する助けとなることは感謝します。なぜ私は少なくともプログレスバーの更新を見ていないのかわかりません。私はまた、何かが別のスレッドで動いているときにメインスレッドがハングするのは本当に混乱しています。おそらく、理解しなければならないモバイルアプリケーションにスレッディングに関する何かがありますか?
public MainPage()
{
InitializeComponent();
}
private void ProcessIncommingSearch(TwitterSearchResult searchResult, TwitterResponse response)
{
if (response.StatusCode == HttpStatusCode.OK)
{
foreach (var status in searchResult.Statuses)
{
TwitterStatus inline = status;
Tweet tweet = new Tweet(inline);
Dispatcher.BeginInvoke(() => lboxTweets.Items.Add(tweet));
}
}
}
private void image1_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
{
Dispatcher.BeginInvoke(() => lboxTweets.Items.Clear());
Dispatcher.BeginInvoke(new ThreadStart (doProgressBar));
TwitterService ts = GlobalVariables.Service();
ts.Search(txtSearch.Text, ProcessIncommingSearch);
}
private void doProgressBar()
{
while (progressBar1.Value <= 100)
{
progressBar1.Value += 1;
}
}
private void txtSearch_GotFocus(object sender, RoutedEventArgs e)
{
txtSearch.Text = "";
}
private void txtPage_ManipulationStarted(object sender, ManipulationStartedEventArgs e)
{
throw new NotImplementedException();
}
silverlightツールキットの通常のプログレスバーまたはパフォーマンスプログレスバーを使用していますか? TwitterServiceとは何ですか?自家製または既存の図書館? –
進捗バーのxamlを次に示します。 。 Twitterserviceはtweetsharpライブラリからのものです。プログレスバーの更新がなくても正常に動作します。 –