From: Kimura Youichi Date: Sun, 27 Apr 2014 14:54:20 +0000 (+0900) Subject: ShowUserInfoのプロフィール画像の取得処理をBackgroundWorkerからTaskに移行 X-Git-Tag: OpenTween_v1.2.0~26^2~28 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=c5ecf85ae64123ab7daff45e435c9ed28a0a723c;p=opentween%2Fopen-tween.git ShowUserInfoのプロフィール画像の取得処理をBackgroundWorkerからTaskに移行 --- diff --git a/OpenTween/ShowUserInfo.Designer.cs b/OpenTween/ShowUserInfo.Designer.cs index bade7f93..810a7e25 100644 --- a/OpenTween/ShowUserInfo.Designer.cs +++ b/OpenTween/ShowUserInfo.Designer.cs @@ -30,7 +30,6 @@ { this.components = new System.ComponentModel.Container(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(ShowUserInfo)); - this.BackgroundWorkerImageLoader = new System.ComponentModel.BackgroundWorker(); this.LinkLabel2 = new System.Windows.Forms.LinkLabel(); this.ButtonBlockDestroy = new System.Windows.Forms.Button(); this.ButtonReportSpam = new System.Windows.Forms.Button(); @@ -85,11 +84,6 @@ ((System.ComponentModel.ISupportInitialize)(this.UserPicture)).BeginInit(); this.SuspendLayout(); // - // BackgroundWorkerImageLoader - // - this.BackgroundWorkerImageLoader.DoWork += new System.ComponentModel.DoWorkEventHandler(this.BackgroundWorkerImageLoader_DoWork); - this.BackgroundWorkerImageLoader.RunWorkerCompleted += new System.ComponentModel.RunWorkerCompletedEventHandler(this.BackgroundWorkerImageLoader_RunWorkerCompleted); - // // LinkLabel2 // resources.ApplyResources(this.LinkLabel2, "LinkLabel2"); @@ -489,7 +483,6 @@ #endregion - internal System.ComponentModel.BackgroundWorker BackgroundWorkerImageLoader; internal System.Windows.Forms.LinkLabel LinkLabel2; internal System.Windows.Forms.Button ButtonBlockDestroy; internal System.Windows.Forms.Button ButtonReportSpam; diff --git a/OpenTween/ShowUserInfo.cs b/OpenTween/ShowUserInfo.cs index 6e4df383..841c1984 100644 --- a/OpenTween/ShowUserInfo.cs +++ b/OpenTween/ShowUserInfo.cs @@ -61,7 +61,6 @@ namespace OpenTween } private TwitterDataModel.User userInfo = null; private UserInfo _info = new UserInfo(); - private Image icondata = null; private List atlist = new List(); private string recentPostTxt; @@ -135,6 +134,20 @@ namespace OpenTween return true; } + private async Task SetUserImageAsync(string imageUri) + { + var oldImage = this.UserPicture.Image; + if (oldImage != null) + { + this.UserPicture.Image = null; + oldImage.Dispose(); + } + + var image = await Task.Run(() => (new HttpVarious()).GetImage(imageUri.Replace("_normal", "_bigger"))); + + this.UserPicture.Image = image; + } + private async Task SetLinklabelWebAsync(string data) { string webtext; @@ -212,9 +225,6 @@ namespace OpenTween return; } - //アイコンロード - BackgroundWorkerImageLoader.RunWorkerAsync(); - InitPath(); InitTooltip(); this.Text = this.Text.Insert(0, _info.ScreenName + " "); @@ -272,6 +282,7 @@ namespace OpenTween await Task.WhenAll(new[] { linkTask, + this.SetUserImageAsync(_info.ImageUrl.OriginalString), this.LoadFriendshipAsync(_info.ScreenName), }); } @@ -358,27 +369,11 @@ namespace OpenTween private void ShowUserInfo_FormClosing(object sender, FormClosingEventArgs e) { - UserPicture.Image = null; - if (icondata != null) - icondata.Dispose(); - } - - private void BackgroundWorkerImageLoader_DoWork(object sender, DoWorkEventArgs e) - { - string name = _info.ImageUrl.ToString(); - icondata = (new HttpVarious()).GetImage(name.Replace("_normal", "_bigger")); - } - - private void BackgroundWorkerImageLoader_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e) - { - try - { - if (icondata != null) - UserPicture.Image = icondata; - } - catch (Exception) + var oldImage = this.UserPicture.Image; + if (oldImage != null) { - UserPicture.Image = null; + this.UserPicture.Image = null; + oldImage.Dispose(); } } diff --git a/OpenTween/ShowUserInfo.resx b/OpenTween/ShowUserInfo.resx index cb626186..c84f8c47 100644 --- a/OpenTween/ShowUserInfo.resx +++ b/OpenTween/ShowUserInfo.resx @@ -117,9 +117,6 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - 17, 17 - True @@ -1371,12 +1368,6 @@ のユーザー情報 - - BackgroundWorkerImageLoader - - - System.ComponentModel.BackgroundWorker, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - SelectionCopyToolStripMenuItem