Aracılığıyla paylaş


IThreadProxy::SwitchOut yöntemi

Temel sanal işlemcisi kök içerikten disassociates.

virtual void SwitchOut(
   SwitchingProxyState switchState = Blocking
) =0;

Parametreler

  • switchState
    Anahtar yürütme iş parçacığı proxy durumunu gösterir.Parametre türü: SwitchingProxyState.

Notlar

Use SwitchOut yürüterek, herhangi bir nedenle sanal işlemcisi kök içerikten ilişkisini gerekiyorsa.Bağlı değer parametre ilettiğiniz switchState, ve sanal işlemci kökte executing değil çağrı hemen geri dönmek veya içerikle ilişkili iş parçacığı proxy engellemek.Aranacak bir hata olduğunu SwitchOut parametresi ayarlanmış Idle.Böylece neden olacaktır bir invalid_argument özel durum.

SwitchOutKaynak Yöneticisi, bunu yapmak için talimat veya geçici oversubscribed sanal işlemcisi kök istenen ve onunla Bitti, Zamanlayıcı sahip işlemci sanal kökleri sayısını azaltmak istediğinizde yararlıdır.Bu durumda yöntemini çaðýrmasý gerektiðini IVirtualProcessorRoot::Remove çağrısı yapmadan önce sanal işlemcisi kök SwitchOut parametresi ile switchState için Blocking.Bu iş parçacığı proxy engeller ve bir Zamanlayıcı farklı sanal işlemcisi kök çalıştırmak üzere kullanılabilir olduğunda yürütülmesine devam edecek.İş parçacığı proxy engelleme işlevini çağırarak sürdürülebilir SwitchTo bu iş parçacığı proxy'nin yürütme içeriği için geçiş yapmak için.Sanal işlemci kök etkinleştirmek için ilişkili içerik kullanarak iş parçacığı proxy devam edebilirsiniz.Bunun nasıl yapılacağı hakkında daha fazla bilgi için bkz: IVirtualProcessorRoot::Activate.

SwitchOutBunu gelecekte iş parçacığı proxy engellemeyi veya geçici olarak sanal işlemci kökünden ayırma, üzerinde çalıştığı ve Zamanlayıcı iş için gönderiyor etkinleştirilebilir, böylece sanal işlemci yeniden başlatmak istediğinizde de kullanılabilir.Use SwitchOut parametresi ile switchState ayarlamak Blocking iş parçacığı proxy engellemek isterseniz.Kullanarak daha sonra sürdürülebilir SwitchTo veya IVirtualProcessorRoot::Activate yukarıda da belirtildiği gibi.Kullanım SwitchOut parametresi ayarlanmış Nesting zaman, geçici olarak bu iş parçacığı proxy üzerinde çalıştığı sanal işlemci kökünden ayırmak istediğiniz ve Zamanlayıcı sanal işlemci ile ilişkilidir.Arayan SwitchOut parametresi ile switchState ayarlamak Nesting sanal işlemci kökte yürütülürken kök yeniden ve bir gerek kalmadan yürütme devam etmek için geçerli iş parçacığı proxy neden olur.İş parçacığı proxy onu çağıran kadar Zamanlayıcı bırakmış kabul IThreadProxy::SwitchOut yöntemi ile Blocking zaman daha ileri bir noktada.İkinci çağrı SwitchOut parametresi ayarlanmış Blocking onu tarafından sürdürülebilir şekilde içerik engellenen bir duruma döndürmek için hedeflenen SwitchTo veya IVirtualProcessorRoot::Activate onu ilişkisi kesildi Zamanlayıcısı'ndaki.Bu sanal işlemci kökte yürütülmekte olan değil çünkü hiçbir Alınanlar gerçekleşir.

Yeniden başlatılan sanal işlemcisi kök Kaynağı Yöneticisi tarafından verilmiş, Zamanlayıcı yepyeni bir sanal işlemci kökünden farklı değildir.Yürütme için bir yürütme içeriği kullanılarak etkinleştirerek kullanabilmek için IVirtualProcessorRoot::Activate.

SwitchOutçağrılması gerekir IThreadProxy geçerli yürütme iş parçacığı veya sonuçlarını gösteren arabirimi tanımlanmamış.

Kitaplıklar ve Visual Studio 2010 ile birlikte gelen üstbilgileri, bu yöntem bir parametre olmayacağına ve sanal işlemcisi kök reinitialize değil.Varsayılan parametre değeri Visual Studio 2012 için yükseltme sırasında eski davranışı korumak için Blocking sağlanır.

Gereksinimler

Başlık: concrtrm.h

Namespace: eşzamanlılık

Ayrıca bkz.

Başvuru

IThreadProxy yapısı