0
Điểm khác nhau giữa Console app và WPF application trong .Net
Xin chào mọi người, mình đang bắt đầu lập trình với C# trong VS. Mình có một đoạn code như sau chạy trên console application:
javaAccessBridge = Jab.Instance;
javaAccessBridge.Init();
using (JavaApplication app = new JavaApplication())
{
JavaApplicationContext context = new JavaApplicationContext()
{
ExecutableFile = @"c:\Dev\sq.jar"
};
app.Launch(context);
}
Thread.Sleep(5000);
// return 0, not found any jvm instance.
javaAccessBridge.EnumJvms().Count;
và một đoạn code tương tự trên WPF
public MainWindow()
{
InitializeComponent();
javaAccessBridge = Jab.Instance;
javaAccessBridge.Init();
}
private void Find_Click(object sender, RoutedEventArgs e)
{
using (JavaApplication app = new JavaApplication())
{
JavaApplicationContext context = new JavaApplicationContext()
{
ExecutableFile = @"c:\Dev\sq.jar"
};
app.Launch(context);
}
// count 1 jvm instance.
List<AccessibleJvm> jvms = javaAccessBridge.EnumJvms();
}
Vì chạy trên wpf, Jab của mình đã thấy 1 instance java vừa dc launch, nên mình nghĩ do mình init jab trên hàm main(), mình nghĩ là nó chạy trên 1 luồng, và việc lấy jvm instance thì đc chạy ở luồng khác nên đọc được,
Mình làm tương tự như vậy, tạo 2 Thread để chạy trên console app, nhưng vẫn k thu được kết quả.
Mình nghĩ là do cơ chế của WPF vs Console app khác nhau, các bạn có thể giúp mình giải thích được ko ah?
Add a comment