Threading in C# by Joseph Albahari görüşmeler:Delegelerdeki BeginInvoke ve EndInvoke hem tam çitler oluşturur mu? belirten kısaca bu konuda
oluşturmak örtük aşağıdaki tam çitler:
- C# 'ın kilit beyanı (Monitor.Enter/Monitor.Exit) İçten kilitli sınıfına
- tüm yöntemleri (biz ') yakında parçacığı havuzu kullanmak
- asenkron geri aramalar bunlar ele alacağız - bu asenkron delegeleri, APM geri aramalar içerir ve Görev
- continuations Ayar ve sinyalizasyon bekleyen böyle başlatma veya görev bekliyor gibi sinyalizasyon dayanır
- şey inşa
"asenkron delegeler" listesinde olduğu gibi, ben en azından tamamen EndInvoke olduğunu varsaymak istiyorum çitle çevrili. Peki ya BeginInvoke? Ne yazık ki, BeginInvoke koduna F11 (= hata ayıklama adımı) yapamıyorum - kaynak bir yerlerde mevcut mu? Kesin bir cevaba bağlantı daha iyi olsa da.
(Beginınvoke çalışma zamanı tarafından sağlanan en Microsoft'tan edinilebilir kaynak kodu onun elf; –
Bu iki yöntemi doğrudan makine kodunda geliştirdiler mi? ;) Ancak dürüstlük, MS 'kaynaklarına bakmanın bir yolu olup olmadığından bağımsız olarak, iplik güvenliği açısından herhangi bir garanti olup olmadığını bilmek güzel olurdu. 'En son standartların II ve IV bölümlerinde' bariyer ',' çit ',' uçucu 'kelimelerini veya [http://msdn.microsoft.com/ adresinden geri adım attığım' çalışma taslağını 'hiçbirini bulamadım. tr-us/netframework/aa569283.aspx] –
Muhtemelen makine kodu C veya C++ olmayabilir. Gerçekten ona bakmak istiyorsanız, nasıl yapıldığını görmek için Mono kaynak kodunu indirebilirsiniz. – codenheim