База ответов ИНТУИТ

Common Intermediate Language и системное программирование в Microsoft .NET

<<- Назад к вопросам

В данном случае:
DWORD FlsAlloc( PFLS_CALLBACK_FUNCTION lpCallback );VOID WINAPI FlsCallback( PVOID lpFlsData ){  ...}
происходит:

(Отметьте один правильный вариант ответа.)

Варианты ответа
выделения ячейки FLS памяти(Верный ответ)
выделения ячейки TLS памяти
выделения ячейки PLS памяти
Похожие вопросы
В современных реализациях Windows с помощью функции:
BOOL QueueUserWorkItem(  LPTHREAD_START_ROUTINE QueryFunction,  PVOID pContext, ULONG Flags);
предусмотрена возможность:
В данном примере:
void make_file (FILE* file, PINPUT_PARAMETERS inP){  make_headers	 		(file, inP);  make_text_section	(file, inP);  make_cli_section 	(file, inP);  make_reloc_section	(file, inP);};
функция make_file вызывает:
В данном примере:
public abstract class Expression{ public abstract string GenerateCS(); public abstract void GenerateCIL(ILGenerator il); public abstract double Evaluate(double x);}
метод GenerateCS:
В данном примере:
public abstract class Expression{ public abstract string GenerateCS(); public abstract void GenerateCIL(ILGenerator il); public abstract double Evaluate(double x);}
метод Evaluate:
В данном примере:
public abstract class Expression{ public abstract string GenerateCS(); public abstract void GenerateCIL(ILGenerator il); public abstract double Evaluate(double x);}
метод GenerateCIL:
В данном случае:
ov.Offset = 12345;if (  WriteFile( fh, buffer, sizeof(buffer), &dwWritten, &ov ) ||  GetLastError() == ERROR_IO_PENDING) {  while (!GetOverlappedResult(fh, &ov, &dwWritten, FALSE)){}} else {}
Функция GetOverlappedResult проверяет:
В следующем примере:
.class public SampleClass{ .method public static void Demo() {  .entrypoint  .maxstack 3  ldc.r8 	  0.0  ldc.r8 	  0.0  newobj 	  void Point::.ctor(float64,float64)  ldc.r8 	  1.0  ldc.r8 	  1.0  newobj 	  void Point::.ctor(float64,float64)  call 		  float64 Point::Distance(valuetype Point, valuetype Point)  call 	  void [mscorlib]System.Console::WriteLine (float64)  ret   }}
метод Demo будет вычислять расстояние между точками:
Объявление конструктора с двумя параметрами происходит в следующем случае:
В данном случае:
ov.Offset = 12345;ov.hEvent = CreateEvent((LPSECURITY_ATTRIBUTES)NULL, TRUE, FALSE, 0);if (   WriteFile( fh, buffer, sizeof(buffer), &dwWritten, &ov ) ||  GetLastError() == ERROR_IO_PENDING) {  GetOverlappedResult( fh, &ov, &dwWritten, TRUE );} else {}
функция GetOverlappedResult проверяет состояние операции и, если она еще не завершена, вызывает функцию:
В данном примере:
#include <stdio.h>#include <process.h>#include <windows.h>#define THREADS 10#define ASIZE  10000000static LONG   array[ASIZE];unsigned __stdcall ThreadProc( void *param ){  int  i;  for ( i = 0; i < ASIZE; i++ ) array[i]++;  return 0;}int main( void ){  HANDLE  	hThread[THREADS];  unsigned 	dwThread;  int 			i, errs;  for ( i = 0; i < THREADS; i++ )    hThread[i] = (HANDLE)_beginthreadex(      NULL, 0, ThreadProc, NULL, 0, &dwThread    );  WaitForMultipleObjects( THREADS, hThread, TRUE, INFINITE );  for ( i = 0; i < THREADS; i++ ) CloseHandle( hThread[i] );  for ( errs=i=0; i<ASIZE; i++ )    if ( array[i] != THREADS ) errs++;  if ( errs ) printf("Detected %d errors!\n", errs );  return 0;}
несколько потоков увеличивают значение элементов общего массива на: