Showing posts with label C#. Show all posts
Showing posts with label C#. Show all posts

Tuesday, October 9, 2012

Use DirectorySearcher to get more than 1000 results


using(DirectorySearcher ds= new DirectorySearcher(abc, "(objectClass=Group)", load))
{
    ds.PageSize = 1000;
    var results = ds.FindAll();
}

其實將PageSize轉做0至1000之內就得(0同1000都只會SHOW 1000 個result)

Saturday, September 1, 2012

C#中[STAThread]的作用

[STAThread]即 single-threaded apartment

每個Thread都有一個關於ApartmentState的屬性,可以把它設置為:STA或者MTA,或者UNKNOWN。
當你想指定工程的啟動窗口的時候,你需要在該窗口類中申明一個Main()方法,並為這個方法設置[STAThread]屬性。

[STAThread]是Single Thread Apartment單線程套間的意思,是一種線程模型,用在程序的入口方法上

(在C#和VB.NET裡是Main()方法),來指定當前線程的ApartmentState 是STA。用在其他方法上不產生影響。

在aspx頁面上可以使用AspCompat = "true" 來達到同樣的效果。這個屬性只在 Com Interop 有用,如果全部是 m​​anaged code 則無用。簡單的說法:[STAThread]指示應用程序的默認線程模型是單線程單元(STA)。

啟動線程模型可設置為單線程單元或多線程單元。如果未對其進行設置,則該線程不被初始化。也就是說如果你用的.NET Framework,並且沒有使用COM Interop,一般不需要這個Attribute。其它的還有MTA(多線程套間)、Free Thread(自由線程)。

單線程套間,簡單來說所有對於單線程套間中對象的訪問都是通過消息來傳遞的,所以同一時間只有一個線程能夠訪問單線程套間中的對象。

Monday, November 1, 2010

OptimisticConcurrencyException

C兄教的...
處理save入db時出現concurrency的問題...
記低先...
                           
try
{
    int Indict = db.SaveChanges();
}
    catch (OptimisticConcurrencyException)
{
    db.Refresh(System.Data.Objects.RefreshMode.ClientWins, add);
    db.SaveChanges();
}

Wednesday, October 27, 2010

What is the different between .toSting & Convert.ToString() ?

In short, almost no different
as the runtime of them is very close (but in fact, .toString is a little bit fast then Convert.ToString())
btw, Convert.ToString() can handle null value while .toSting can not (it will return Error)