Bagikan melalui


Fungsi CreateFiberEx (winbase.h)

Mengalokasikan objek serat, menetapkan tumpukan, dan menyiapkan eksekusi untuk memulai pada alamat awal yang ditentukan, biasanya fungsi serat. Fungsi ini tidak menjadwalkan serat.

Sintaks

LPVOID CreateFiberEx(
  [in]           SIZE_T                dwStackCommitSize,
  [in]           SIZE_T                dwStackReserveSize,
  [in]           DWORD                 dwFlags,
  [in]           LPFIBER_START_ROUTINE lpStartAddress,
  [in, optional] LPVOID                lpParameter
);

Parameter

[in] dwStackCommitSize

Ukuran penerapan awal tumpukan, dalam byte. Jika parameter ini nol, serat baru menggunakan ukuran tumpukan penerapan default untuk yang dapat dieksekusi. Untuk informasi selengkapnya, lihat Ukuran Tumpukan Utas.

[in] dwStackReserveSize

Ukuran cadangan awal tumpukan, dalam byte. Jika parameter ini nol, serat baru menggunakan ukuran tumpukan cadangan default untuk yang dapat dieksekusi. Untuk informasi selengkapnya, lihat Ukuran Tumpukan Utas.

[in] dwFlags

Jika parameter ini nol, status floating-point pada sistem x86 tidak dialihkan dan data dapat rusak jika serat menggunakan aritmatika floating-point. Jika parameter ini FIBER_FLAG_FLOAT_SWITCH, status floating-point dialihkan untuk serat.

Windows XP: Bendera FIBER_FLAG_FLOAT_SWITCH tidak didukung.

[in] lpStartAddress

Penunjuk ke fungsi yang ditentukan aplikasi untuk dieksekusi oleh serat dan mewakili alamat awal serat. Eksekusi serat yang baru dibuat tidak dimulai sampai serat lain memanggil fungsi SwitchToFiber dengan alamat ini. Untuk informasi selengkapnya tentang fungsi panggilan balik serat, lihat FiberProc.

[in, optional] lpParameter

Penunjuk ke variabel yang diteruskan ke serat. Serat dapat mengambil data ini dengan menggunakan makro GetFiberData .

Nilai kembali

Jika fungsi berhasil, nilai pengembalian adalah alamat serat.

Jika fungsi gagal, nilai yang dikembalikan adalah NULL. Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Keterangan

Jumlah serat yang dapat dibuat proses dibatasi oleh memori virtual yang tersedia. Secara default, setiap serat memiliki 1 megabyte ruang tumpukan yang dipesan. Oleh karena itu, Anda dapat membuat paling banyak serat 2028. Jika Anda mengurangi ukuran tumpukan default, Anda dapat membuat lebih banyak serat. Namun, aplikasi Anda akan memiliki performa yang lebih baik jika Anda menggunakan strategi alternatif untuk memproses permintaan.

Sebelum utas dapat menjadwalkan serat menggunakan fungsi SwitchToFiber , alur harus memanggil fungsi ConvertThreadToFiber sehingga ada serat yang terkait dengan utas.

Untuk mengkompilasi aplikasi yang menggunakan fungsi ini, tentukan _WIN32_WINNT sebagai 0x0400 atau yang lebih baru. Untuk informasi selengkapnya, lihat Menggunakan Header Windows.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows XP [aplikasi desktop | Aplikasi UWP]
Server minimum yang didukung Windows Server 2003 [aplikasi desktop | Aplikasi UWP]
Target Platform Windows
Header winbase.h (termasuk Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

ConvertThreadToFiber

FiberProc

Serat

GetFiberData

Fungsi Proses dan Utas

SwitchToFiber