Fungsi call_in_appdomain
Menjalankan fungsi dalam domain aplikasi tertentu.
Sintaks
template <typename ArgType1, ...typename ArgTypeN>
void call_in_appdomain(
DWORD appdomainId,
void (*voidFunc)(ArgType1, ...ArgTypeN) [ ,
ArgType1 arg1,
...
ArgTypeN argN ]
);
template <typename RetType, typename ArgType1, ...typename ArgTypeN>
RetType call_in_appdomain(
DWORD appdomainId,
RetType (*nonvoidFunc)(ArgType1, ...ArgTypeN) [ ,
ArgType1 arg1,
...
ArgTypeN argN ]
);
Parameter
appdomainId
Appdomain untuk memanggil fungsi.
voidFunc
Pointer ke void
fungsi yang mengambil parameter N (0 <= N <= 15).
nonvoidFunc
Pointer ke non-fungsivoid
yang mengambil parameter N (0 <= N <= 15).
arg1... argN
Parameter nol hingga 15 yang akan diteruskan ke voidFunc
atau nonvoidFunc
di appdomain lainnya.
Tampilkan Nilai
Hasil dari menjalankan voidFunc
atau nonvoidFunc
dalam domain aplikasi yang ditentukan.
Keterangan
Argumen fungsi yang diteruskan ke call_in_appdomain
tidak boleh jenis CLR.
Contoh
// msl_call_in_appdomain.cpp
// compile with: /clr
// Defines two functions: one takes a parameter and returns nothing,
// the other takes no parameters and returns an int. Calls both
// functions in the default appdomain and in a newly-created
// application domain using call_in_appdomain.
#include <msclr\appdomain.h>
using namespace System;
using namespace msclr;
void PrintCurrentDomainName( char* format )
{
String^ s = gcnew String(format);
Console::WriteLine( s, AppDomain::CurrentDomain->FriendlyName );
}
int GetDomainId()
{
return AppDomain::CurrentDomain->Id;
}
int main()
{
AppDomain^ appDomain1 = AppDomain::CreateDomain( "First Domain" );
call_in_appdomain( AppDomain::CurrentDomain->Id,
&PrintCurrentDomainName,
(char*)"default appdomain: {0}" );
call_in_appdomain( appDomain1->Id,
&PrintCurrentDomainName,
(char*)"in appDomain1: {0}" );
int id;
id = call_in_appdomain( AppDomain::CurrentDomain->Id, &GetDomainId );
Console::WriteLine( "default appdomain id = {0}", id );
id = call_in_appdomain( appDomain1->Id, &GetDomainId );
Console::WriteLine( "appDomain1 id = {0}", id );
}
Hasil
default appdomain: msl_call_in_appdomain.exe
in appDomain1: First Domain
default appdomain id = 1
appDomain1 id = 2
Persyaratan
File<header msclr\appdomain.h>
Namespace msclr
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk