Начиная с C # 7.1 существует 4 новых подписи для метода Main
, которые позволяют сделать это async
( Источник , Источник 2 , Источник 3 ):
public static Task Main();
public static Task Main();
public static Task Main(string[] args);
public static Task Main(string[] args);
Вы можете пометить свой метод Main
ключевым словом async
и использовать await
внутри Main
:
static async Task Main(string[] args)
{
Task getWebPageTask = GetWebPageAsync("http://msdn.microsoft.com");
Debug.WriteLine("In startButton_Click before await");
string webText = await getWebPageTask;
Debug.WriteLine("Characters received: " + webText.Length.ToString());
}
C # 7.1 доступен в Visual Studio 2017 15.3.
Вы можете выбросить Java Exception, например, IllegalArgumentException
, из уровня JNI, как показано ниже:
//JNIEnv *env,
jclass jcls = env->FindClass("java/lang/IllegalArgumentException");
env->ThrowNew(jcls, "Argument cannot be null.");
Кроме того, вы можете проверить статус исключения в уровне JNI, как показано ниже:
//JNIEnv *env,
jboolean flag = env->ExceptionCheck();
if (flag) {
env->ExceptionClear();
/* code to handle exception */
}