.Net 的 Thread 超時自動結束

Thread並沒有內建超時自動結束的功能,所以利用Join等待的特性,再利用Abort來結束Thread。

using System;
using System.Threading;

namespace Test
{
    class Program
    {
        static void Main(string[] args)
        {
            Thread t = new Thread(new ThreadStart(delegate()
            {
                Console.WriteLine("Thread開始");
                Thread.Sleep(3000); //等待3秒
                Console.WriteLine("Thread結束");
            }));
            t.Start();

            Console.WriteLine("Thread等待");

            if (!t.Join(2000)) t.Abort(); //超過兩秒結束Thread

            Console.WriteLine("程式結束");

            Console.ReadLine();
        }
    }
}

  2012-05-04      ez      .NET
.Net 運用 MongoDB 寫入、讀取、建立索引、刪除索引

首先下載 mongodb-csharp

原始網址:https://github.com/samus/mongodb-csharp/downloads

本站下載:MongoDBDriver-Release-0.90.0-Beta-1

using System;
using System.Linq;

namespace MongoDB
{
    class Program
    {
        static void Main(string[] args)
        {
            var mongo = new Mongo("mongodb://192.168.3.129");
            mongo.Connect();

            var DB = mongo.GetDatabase("TEST_DB");
            var TABLE = DB.GetCollection("TEST_TABLE");
            
            /*新增資料行*/
            {
                var DOC = new Document();
                DOC["Name"] = "Tom";
                DOC["Sex"] = true;
                DOC["Year"] = 18;
                TABLE.Insert(DOC);
            }

            /*列出指定TABLE資料列*/
            {
                foreach (var DOC in TABLE.FindAll().Documents)
                {
                    Console.WriteLine(DOC["Name"]);
                    Console.WriteLine(DOC["Sex"]);
                    Console.WriteLine(DOC["Year"]);
                }
            }
                        
            /*查詢指定資料*/
            {
                var DOC = new Document();
                DOC["Name"] = "Tom";
                var category = TABLE.FindOne(DOC);
                Console.WriteLine(category["Name"]);
                Console.WriteLine(category["Sex"]);
                Console.WriteLine(category["Year"]);
            }


            //MongoDB默認的索引_id(類似DB的主鍵)索引名稱叫做_id_ 列出索引資訊
            var _idindex = TABLE.MetaData.Indexes.Single(s => s.Key == "_id_");
            Console.WriteLine(_idindex);

            //將TABLE中的Sex欄位建立成為 單一索引(1正排列 -1反排列)
            TABLE.MetaData.CreateIndex(new Document() { { "Sex", 1 } }, false);

            //將TABLE中的Sex欄位建立成為 多重索引
            TABLE.MetaData.CreateIndex(new Document() { { "Name", 1 }, { "Sex", -1 } }, false);

            //將TABLE中的Name欄位建立成為 唯一索引
            TABLE.MetaData.CreateIndex(new Document() { { "Name", 1 } }, true);

            /*列出TABLE的所有索引*/
            foreach (var index in TABLE.MetaData.Indexes)
            {
                Console.WriteLine(index.Value);
            }

            //刪除TABLE的索引
            TABLE.MetaData.DropIndex("_Sex_");
        }
    }
}

 


  2012-05-04      ez      .NET 、   NO-SQL
VMware 如何關閉 caches 資料夾功能

VMware執行時會自動產生caches資料夾,裡面包含了非常多的檔案,自從VM7.1以後就會產生此資料夾,要如何關閉呢?

如果要完全關閉此功能,可至 %AllUsersProfile%\VMware\VMware Workstation\config.ini 修改檔案,加入以下這行文字

isolation.tools.unity.disable = "true"

儲存後即可完成。

如果要部份VM關閉此功能,可修改.VMX 加入以下這行文字

unity.enableLaunchMenu = "FALSE"

unity.showBadges = "FALSE"

unity.showBorders = "FALSE"

unity.wasCapable = "FALSE"

儲存後即可完成。


  2013-01-25      ez      VMWare
如何關閉 .VMEM

VMware執行時會自動產生.VMEM的檔案,並且容量為您設定的記憶體大小。

如果要完全關閉此功能,可至 C:\Documents and Settings\All Users\Application Data\VMware\VMware Workstation\settings.ini 修改檔案,加入以下這行文字

mainMem.useNamedFile = FALSE

儲存後即可完成。

如果要部份VM關閉此功能,可修改.VMX 加入以下這行文字

mainMem.useNamedFile = FALSE

儲存後即可完成。


  2012-03-01      ez      VMWare