public void ThreadSafetyDictionaryFile_DictionaryFile_OneThread()
		{
			var dic = new ThreadSafetyDictionaryFile(Path.GetTempFileName());
			dic.AddWord("test");
			Assert.True(dic.ContainsWord("test"));
			Assert.False(dic.ContainsWord("no_test_word"));
		}
		public void ThreadSafetyDictionaryFile_DictionaryFile_MultiThreadAndInstance()
		{
			string fileName = Path.GetTempFileName();
			Task ta = Task.Run(() =>
			{
				var dic1 = new ThreadSafetyDictionaryFile(fileName);

				for (int i = 0; i < 100; i++)
				{
					dic1.AddWord("a" + i);
				}
			});

			Task tb = Task.Run(() =>
			{
				var dic2 = new ThreadSafetyDictionaryFile(fileName);

				for (int i = 0; i < 100; i++)
				{
					dic2.AddWord("b" + i);
				}
			});

			Task tc = Task.Run(() =>
			{
				var dic3 = new ThreadSafetyDictionaryFile(fileName);

				for (int i = 0; i < 100; i++)
				{
					dic3.AddWord("c" + i);
				}
			});

			Task td = Task.Run(() =>
			{
				var dic4 = new ThreadSafetyDictionaryFile(fileName);

				for (int i = 0; i < 100; i++)
				{
					dic4.AddWord("d" + i);
				}
			});

			var dic = new ThreadSafetyDictionaryFile(fileName);
			Task.WaitAll(ta, tb, tc, td);


			dic.AddWord("test");
			for (int i = 0; i < 100; i++)
			{
				Assert.True(dic.ContainsWord("a" + i));
				Assert.True(dic.ContainsWord("b" + i));
				Assert.True(dic.ContainsWord("c" + i));
				Assert.True(dic.ContainsWord("d" + i));
			}
		}
		public void ThreadSafetyDictionaryFile_DictionaryFile_MultiThread()
		{
			var dic = new ThreadSafetyDictionaryFile(Path.GetTempFileName());


			Task ta = Task.Run(() =>
			{
				for (int i = 0; i < 100; i++)
				{
					dic.AddWord("a" + i);
				}
			});

			Task tb = Task.Run(() =>
			{
				for (int i = 0; i < 100; i++)
				{
					dic.AddWord("b" + i);
				}
			});

			Task tc = Task.Run(() =>
			{
				for (int i = 0; i < 100; i++)
				{
					dic.AddWord("c" + i);
				}
			});

			Task td = Task.Run(() =>
			{
				for (int i = 0; i < 100; i++)
				{
					dic.AddWord("d" + i);
				}
			});


			Task.WaitAll(ta, tb, tc, td);
			for (int i = 0; i < 100; i++)
			{
				Assert.True(dic.ContainsWord("a" + i));
				Assert.True(dic.ContainsWord("b" + i));
				Assert.True(dic.ContainsWord("c" + i));
				Assert.True(dic.ContainsWord("d" + i));
			}
		}