From f8c1993c9f8b1f7213492ce8513e161446203066 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Manuel=20V=C3=B6gele?= Date: Tue, 13 May 2014 19:15:41 +0200 Subject: [PATCH] Die Potato (or music), locken beim Zeichnen, Threads von Parse, Receiver und Sender laufen nun im Hintergrund --- src/Gui/ChatOutputBox.cs | 4 ++-- src/Gui/Gui.cs | 11 +++++++++-- src/Gui/Program.cs | 6 ++++-- src/Gui/Splashscreen.cs | 4 ++-- src/Music.cs | 4 ++-- src/Parser.cs | 1 + src/Receiver.cs | 1 + src/Sender.cs | 1 + 8 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/Gui/ChatOutputBox.cs b/src/Gui/ChatOutputBox.cs index 1ba0f52..cf1c4e2 100644 --- a/src/Gui/ChatOutputBox.cs +++ b/src/Gui/ChatOutputBox.cs @@ -10,7 +10,7 @@ namespace WorldOfPeacecraft private Font MessageFont; private Font SenderFont; private Font IregularSenderFont; - private Music m = new Music(); + //private Music m = new Music(); public ChatOutputBox (IBackend backend) { @@ -43,7 +43,7 @@ namespace WorldOfPeacecraft this.SelectionFont = MessageFont; this.AppendText (message.GetMessage ()); if (message.GetMessage().Contains("nyancat")) { - m.Playmusic ("poptart"); + //m.Playmusic ("poptart"); } } } diff --git a/src/Gui/Gui.cs b/src/Gui/Gui.cs index dec1d70..f2fb30c 100644 --- a/src/Gui/Gui.cs +++ b/src/Gui/Gui.cs @@ -16,7 +16,7 @@ namespace WorldOfPeacecraft private ChatPanel ChatPanel; private OnlinePlayerList OnlinePlayerList; - private Music m = new Music(); + //private Music m = new Music(); public Gui () { @@ -40,6 +40,13 @@ namespace WorldOfPeacecraft Backend.StartThreads (); } + protected override void OnPaint (PaintEventArgs e) + { + lock (Backend) { + base.OnPaint(e); + } + } + public void InitializeComponents () { MapPanel.InitializeComponents (); @@ -65,7 +72,7 @@ namespace WorldOfPeacecraft this.ResumeLayout(); - m.Playmusic ("overworld"); + //m.Playmusic ("overworld"); } protected override void OnClosing (System.ComponentModel.CancelEventArgs e) diff --git a/src/Gui/Program.cs b/src/Gui/Program.cs index 34522c4..25201c5 100644 --- a/src/Gui/Program.cs +++ b/src/Gui/Program.cs @@ -17,8 +17,10 @@ namespace WorldOfPeacecraft Application.Run (splash); } private static void OnGuiLoaded(SplashScreen screen, Gui gui){ - screen.Hide (); - gui.Show (); + screen.BeginInvoke(new MethodInvoker(delegate { + screen.Hide (); + gui.Show (); + })); } } } diff --git a/src/Gui/Splashscreen.cs b/src/Gui/Splashscreen.cs index b8fabc8..a8eb669 100644 --- a/src/Gui/Splashscreen.cs +++ b/src/Gui/Splashscreen.cs @@ -10,7 +10,7 @@ namespace WorldOfPeacecraft { private string ImagesFolder = "textures/"; private Image Logo; - private Music m = new Music(); + //private Music m = new Music(); private Gui gui; private IBackend backend; @@ -25,7 +25,7 @@ namespace WorldOfPeacecraft t.Start (); this.SetClientSizeCore (450, 150); Logo = Image.FromFile (ImagesFolder + "splashscreen.png"); - m.Playmusic ("splashscreen"); + //m.Playmusic ("splashscreen"); } protected override void OnPaint (PaintEventArgs e) diff --git a/src/Music.cs b/src/Music.cs index 9675437..4d685f4 100644 --- a/src/Music.cs +++ b/src/Music.cs @@ -3,7 +3,7 @@ using System.Media; namespace WorldOfPeacecraft { - public class Music + /*public class Music { private static string musicpath = "./music/"; private static string soundpath = "./sounds/"; @@ -31,6 +31,6 @@ namespace WorldOfPeacecraft poptartplayer.Play (); //TODO: Monalisa } - } + }*/ } diff --git a/src/Parser.cs b/src/Parser.cs index 7d3bed9..ceb433d 100644 --- a/src/Parser.cs +++ b/src/Parser.cs @@ -61,6 +61,7 @@ namespace WorldOfPeacecraft Message = new LinkedList (); LastLineRegex = new Regex ("^end:[0-9]+$"); ParserThread = new Thread (new ThreadStart (this.RunParser)); + ParserThread.IsBackground = true; } private void RunParser () diff --git a/src/Receiver.cs b/src/Receiver.cs index 3146961..a96d5a0 100644 --- a/src/Receiver.cs +++ b/src/Receiver.cs @@ -17,6 +17,7 @@ namespace WorldOfPeacecraft this.Client = client; this.ReceiverBuffer = buffer; ReceiverThread = new Thread(new ThreadStart(this.doReceive)); + ReceiverThread.IsBackground = true; } public string Receive () diff --git a/src/Sender.cs b/src/Sender.cs index eb16001..a739f1a 100644 --- a/src/Sender.cs +++ b/src/Sender.cs @@ -17,6 +17,7 @@ namespace WorldOfPeacecraft this.Client = client; this.Buffer = buffer; this.SenderThread = new Thread(new ThreadStart(this.threadStart)); + this.SenderThread.IsBackground = true; } public void Send (String message)