C# 在按钮中排序事件。\u单击
我试图让事件在我的按钮点击中一次发生一个,但由于某些原因,一切似乎都在等待运行,直到一切都完成。例如,图像更改只有在其他所有事情发生后才会发生C# 在按钮中排序事件。\u单击,c#,winforms,click,C#,Winforms,Click,我试图让事件在我的按钮点击中一次发生一个,但由于某些原因,一切似乎都在等待运行,直到一切都完成。例如,图像更改只有在其他所有事情发生后才会发生 private void button1_Click(object sender, EventArgs e) { pictureBox1.Image = Properties.Resources.running; iTunesAppClass itunes = new iTunesAppClass(
private void button1_Click(object sender, EventArgs e)
{
pictureBox1.Image = Properties.Resources.running;
iTunesAppClass itunes = new iTunesAppClass();
IITLibraryPlaylist mainLibrary = itunes.LibraryPlaylist;
IITTrackCollection ittracks = mainLibrary.Tracks;
List<string> files = new List<string>();
List<string> musicfiles = new List<string>();
List<string> badfiles = new List<string>();
List<string> songlist = new List<string>();
int state = ((int)itunes.PlayerState);
string statestring = null;
if (state < 1) { statestring = "Stopped"; };
if (state == 1) { statestring = "Playing"; };
if (state == 1)
{
do
{
label5.Text = ("Pausing iTunes to maintain file integrity");
itunes.Pause();
state = (int)itunes.PlayerState;
}
while (state == 1);
}
if (state < 1) { statestring = "Stopped"; };
if (state == 1) { statestring = "Playing"; };
if (state != 1)
{
label5.Text = "Itunes is " + statestring;
}
string[] extensions = { "*.mp3", "*.mp4", "*.m4a", "*.m4v", "*.m4p", "*.m4b", "*.flac" };
string filepath = label4.Text;
foreach (string extension in extensions)
{
this.pictureBox1.Image = Properties.Resources.running;
try
{
files.AddRange(Directory.GetFiles(filepath, extension, SearchOption.AllDirectories));
}
catch (UnauthorizedAccessException) { }
}
foreach (string file in files)
{
try { string taglibfile = TagLib.File.Create(file).Tag.Title; musicfiles.Add(file); Console.WriteLine(taglibfile); }
catch { badfiles.Add(file); }
}
XDocument baddoc = new XDocument
(new XElement("Corrupt",
badfiles.Select(badfile =>
new XElement("File", badfile))));
baddoc.Save(label4.Text + "\\badfiles.xml");
// foreach(string musicfile in musicfiles)
//{ String Title = (TagLib.File.Create(musicfile).Tag.Title); }
this.pictureBox1.Image = Properties.Resources.skinitunes;
}
private void按钮1\u单击(对象发送者,事件参数e)
{
pictureBox1.Image=Properties.Resources.running;
iTunesAppClass itunes=新iTunesAppClass();
iitlibraryplaylistmainlibrary=itunes.LibraryPlaylist;
IITTrackCollection ittracks=mainLibrary.Tracks;
列表文件=新列表();
列表音乐文件=新列表();
List badfiles=新列表();
List songlist=新列表();
int state=((int)itunes.PlayerState);
字符串statestring=null;
如果(状态<1){statestring=“Stopped”;};
如果(state==1){statestring=“Playing”};
如果(状态==1)
{
做
{
label5.Text=(“暂停iTunes以保持文件完整性”);
暂停();
state=(int)itunes.PlayerState;
}
而(状态==1);
}
如果(状态<1){statestring=“Stopped”;};
如果(state==1){statestring=“Playing”};
如果(状态!=1)
{
label5.Text=“Itunes是”+状态字符串;
}
字符串[]扩展名={“*.mp3”、“*.mp4”、“*.m4a”、“*.m4v”、“*.m4p”、“*.m4b”、“*.flac”};
字符串filepath=label4.Text;
foreach(扩展中的字符串扩展)
{
this.pictureBox1.Image=Properties.Resources.running;
尝试
{
files.AddRange(Directory.GetFiles(filepath、扩展名、SearchOption.AllDirectories));
}
捕获(UnauthorizedAccessException){}
}
foreach(文件中的字符串文件)
{
请尝试{string taglibfile=TagLib.File.Create(File).Tag.Title;musicfiles.Add(File);Console.WriteLine(taglibfile);}
catch{badfiles.Add(file);}
}
XDocument baddoc=新XDocument
(新的“腐败”,
badfiles.Select(badfile=>
新XElement(“文件”,badfile));
baddoc.Save(label4.Text+“\\badfiles.xml”);
//foreach(音乐文件中的字符串音乐文件)
//{String Title=(TagLib.File.Create(musicfile.Tag.Title);}
this.pictureBox1.Image=Properties.Resources.skinitunes;
}
更改图片后,请尝试使用Application.DoEvents()。好的,因此图像已更改,但在运行其余事件之前,旋转不会发生,它只是位于gif的第一帧。如果您在UI线程上执行繁重的任务,我建议您使用BackgroundWorker。您可以设置微调器,启动backgroundworker,并在其完成时进行侦听,以便删除微调器。阅读这个答案,它展示了一个背景工作人员的快速示例