<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: safe code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Sat, 17 May 2008 13:28:13 GMT</pubDate>
    <description>DZone Snippets: safe code</description>
    <item>
      <title>Interprocess synchronization (safe threading)</title>
      <link>http://snippets.dzone.com/posts/show/3950</link>
      <description>Three ways for safe threading:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Threading;&lt;br /&gt;&lt;br /&gt;namespace ConsoleApplication12&lt;br /&gt;{&lt;br /&gt;    class Program&lt;br /&gt;    {&lt;br /&gt;        static object thisLock = new object();&lt;br /&gt;        static int z = 0;&lt;br /&gt;        private static void ThrStart()&lt;br /&gt;        {&lt;br /&gt;            for (int i = 0; i &lt; 10000; i++)&lt;br /&gt;            {&lt;br /&gt;                lock (thisLock)&lt;br /&gt;                {&lt;br /&gt;                    z++;&lt;br /&gt;                    Console.WriteLine(z);&lt;br /&gt;                }&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        private static void ThrStart2()&lt;br /&gt;        {&lt;br /&gt;            for (int i = 0; i &lt; 10000; i++)&lt;br /&gt;            {&lt;br /&gt;                Monitor.Enter(thisLock);&lt;br /&gt;                z++;&lt;br /&gt;                Console.WriteLine(z);&lt;br /&gt;                Monitor.Exit(thisLock);&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        static Mutex mutex = new Mutex();&lt;br /&gt;        private static void ThrStart3()&lt;br /&gt;        {&lt;br /&gt;            for (int i = 0; i &lt; 10000; i++)&lt;br /&gt;            {&lt;br /&gt;                mutex.WaitOne();&lt;br /&gt;                z++;&lt;br /&gt;                Console.WriteLine(z);&lt;br /&gt;                mutex.ReleaseMutex();&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        static void Main(string[] args)&lt;br /&gt;        {&lt;br /&gt;            Thread t1 = new Thread(new ThreadStart(ThrStart));&lt;br /&gt;            Thread t2 = new Thread(new ThreadStart(ThrStart));&lt;br /&gt;            t1.Start();&lt;br /&gt;            t2.Start();&lt;br /&gt;            t1.Join();&lt;br /&gt;            t2.Join();&lt;br /&gt;&lt;br /&gt;            t1 = new Thread(new ThreadStart(ThrStart2));&lt;br /&gt;            t2 = new Thread(new ThreadStart(ThrStart2));&lt;br /&gt;            t1.Start();&lt;br /&gt;            t2.Start();&lt;br /&gt;            t1.Join();&lt;br /&gt;            t2.Join();&lt;br /&gt;&lt;br /&gt;            t1 = new Thread(new ThreadStart(ThrStart3));&lt;br /&gt;            t2 = new Thread(new ThreadStart(ThrStart3));&lt;br /&gt;            t1.Start();&lt;br /&gt;            t2.Start();&lt;br /&gt;            t1.Join();&lt;br /&gt;            t2.Join();&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 02 May 2007 21:20:27 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3950</guid>
      <author>mstampar (Miroslav Stampar)</author>
    </item>
    <item>
      <title>Safe update of windows control from other threads</title>
      <link>http://snippets.dzone.com/posts/show/3886</link>
      <description>&lt;code&gt;&lt;br /&gt;        delegate void UpdateReportCallback(string text);&lt;br /&gt;        private void UpdateReport(string message)&lt;br /&gt;        {&lt;br /&gt;            // InvokeRequired required compares the thread ID of the&lt;br /&gt;            // calling thread to the thread ID of the creating thread.&lt;br /&gt;            // If these threads are different, it returns true.&lt;br /&gt;            if (this.textBoxReport.InvokeRequired)&lt;br /&gt;            {&lt;br /&gt;                UpdateReportCallback d = new UpdateReportCallback(UpdateReport);&lt;br /&gt;                this.Invoke(d, new object[] { message });&lt;br /&gt;            }&lt;br /&gt;            else&lt;br /&gt;            {&lt;br /&gt;                textBoxReport.Text = message + System.Environment.NewLine + textBoxReport.Text;&lt;br /&gt;            }&lt;br /&gt;        }&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Tue, 24 Apr 2007 22:38:09 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3886</guid>
      <author>mstampar (Miroslav Stampar)</author>
    </item>
    <item>
      <title>Safely join file parts</title>
      <link>http://snippets.dzone.com/posts/show/3499</link>
      <description>Simple way to safely join file parts.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;File.join("C:", "osql", "foo.rb")&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Mon, 12 Feb 2007 21:32:31 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/3499</guid>
      <author>MattScilipoti (Matt Scilipoti)</author>
    </item>
    <item>
      <title>makeSafe</title>
      <link>http://snippets.dzone.com/posts/show/2738</link>
      <description>Make data safe...among other things&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;function makeSafe($variable) {&lt;br /&gt;	$variable = htmlentities($variable, ENT_QUOTES);&lt;br /&gt;  	&lt;br /&gt;	if (get_magic_quotes_gpc()) { &lt;br /&gt;		$variable = stripslashes($variable); &lt;br /&gt;	}&lt;br /&gt;  	&lt;br /&gt;	$variable = mysql_real_escape_string(trim($variable));&lt;br /&gt; 	$variable = strip_tags($variable);&lt;br /&gt;	$variable = str_replace("\r\n", "", $variable);&lt;br /&gt; 	&lt;br /&gt;	return $variable;&lt;br /&gt;}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Sat, 30 Sep 2006 07:02:31 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/2738</guid>
      <author>Shpigford (Josh)</author>
    </item>
  </channel>
</rss>
