我使用p/invoke从C#调用一个C#函数,这个函数有一个无限循环(捕获文件的帧),在C#中发生事件时应该会中断这个循环。
我如何打破这个循环(它终止了这个函数)?
我试图在C#中的线程中运行此函数,并在需要终止时中止该线程。,但是中止函数没有工作。
Thread thread = new Thread(myMethod);
thread.Start();
// to terminate the function
thread.Abort(); //didn't respond
public class ThreadTest {
public static void main(String[] args) {
Runnable runnable = new Runnable(){
@Override
public void run(){
//Code to execute on thread.start();
}};
Thread thread = new Thread(runnable);
thread
我在c#的任务类中搞糊涂了。我想知道c#到task的线程代码的等价行是多少?
static void Main(string[] args)
{
int i = 3;
for (int x = 1; x <= i; x++)
{
Thread t = new Thread(RunThread);
t.Start();
}
Console.ReadLine();
}
public static void RunThread()
我使用的是来自的以下代码。
Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() {
@Override
public void uncaughtException(Thread paramThread, Throwable paramThrowable) {
// Catch your exception
// Without System.exit() this will n
VB.Net没有与C#易失性关键字相当的关键字,因此您必须手动实现C#,这通常是通过在读之前和写之后调用Thread.MemoryBarrier()来完成的。因此,类似这样的内容相当于声明C#易失变量:
''' <summary>
''' Gets a value indicating whether this instance is disposed.
''' </summary>
Public Property IsDisposed As Boolean
我有一个用fortran编写的dll,其中包含一个以逻辑参数作为输入的子例程。我希望使用它来控制子例程的取消,并且有可能在调用c#代码中更改它的值。下面是我测试过的一个小例子。
C#代码:
using System;
using System.Runtime.InteropServices;
using System.Threading;
using System.Threading.Tasks;
namespace TestConsApp
{
internal static class Program
{
private static bool _b;
我有一个共享的布尔静态变量uninitialized,并创建了两个线程,启动一个线程,然后休眠两秒,然后启动第二个线程。 我基本上在两个线程中都有基于共享变量条件的打印语句,但在c#和java中运行时得到不同的输出 C#代码: class ThreadCache
{
public static bool shared;
public static void Main()
{
new Thread(Meth1).Start();
Thread.Sleep(2000);
我需要将一个C#应用程序移植到Powershell。应用程序使用线程进行繁重的工作,我需要尽可能地将应用程序的端口保持在与原始C#应用程序接近的位置。问题是,我不能使用System.Threading.Thread生成新线程,因为System.Threading.ThreadStart在Powershell中请求2参数,而C#代码只在代码中请求1,因为它是委托。
下面是C#中生成线程的最小类示例
using System;
using System.Threading;
namespace ThreadingTest
{
class ThreadingTest
{
我是C#新手,在C# windows窗体中执行繁重的任务时,我需要显示一个繁忙的加载器。这是到目前为止已经尝试过的方法,它显示了这个错误 {"Cross-thread operation not valid: Control 'dataGridView1' accessed from a thread other than the thread it was created on."} 这是我的代码 //window form
AjaxLoader loader;
//this form is getting called by menu button so
如何使用线程或任务在C#中打开新表单。
示例:
public void openform()
{
Form _form = new Form();
_form.show()
}
Thread _thread = new Thread(openform);
_thread.start();
如果我使用线程,它会打开表单并再次关闭它。
我在Blacklist类中有一个方法
我试着用这个:
Thread thread = new Thread(() => Blacklist.Process(pgImportProcess));
它会发生错误
C# 3.0语言特性
So how can i create a thread and parse progressbar as a parameter?
预先感谢
可能重复:
如何将带有一个参数的方法放入线程C#中。
示例:
Thread thread = new Thread(SoundInputThread.getSomething(hz));
thread.Start();
for (int i = 0; i < 5; i++) {
Console.WriteLine();
Thread.Sleep(1000);
}
public st
如何将其转换为C# 2.0 (不使用lambda表达式)?
class Program
{
private class State
{
public CultureInfo Result { get; set; }
}
static void Main(string[] args)
{
Thread.CurrentThread.CurrentCulture.ClearCachedData();
var thread = new Thread(
s => ((State)s)
实际上,在C#中,我没有观察到以下内容之间的任何区别:
new Thread(SomeMethod).Start();
,
new Thread(new ParameterizedThreadStart(SomeMethod));
和
new Thread(new ThreadStart(SomeMethod));
如果有的话,有什么不同?
以下c#代码的vb.net等价物是什么?
var thread = new Thread(() =>
{
Dispatcher.CurrentDispatcher.BeginInvoke ((Action)(() => new MySplashForm().Show()));
Dispatcher.Run();
});
专家们,
在C#中,我需要在主线程旁边做一些无休止的循环工作。因此,主线程创建循环线程,当主线程到达某个点时,它应该结束该循环。下面是我知道错误的代码:
private bool m_MayRun;
private Thread m_Thread;
void mainthread() //e.g. the Form_Load event
{
...
m_Thread = new Thread(loopingThread);
m_Thread.Start();
...
m_MayRun = false; // e.g. later in the Form
我在C#上测试线程,但有时我收到一些奇怪的结果,根据逻辑我认为结果是"1","2“或没有,但有时控制台上的结果显示为"12”。C#上有个bug,还是有什么解释?
class Program
{
static int x = 0, y = 0;
static void Main(string[] args)
{
Thread t1, t2;
t1 = new Thread(function1);
t2 = new Thread(function2);
t1.Start();
您将如何使用C#中最新的线程处理技术重写它?
var dateRange = new DateRange(date, date.AddDays(1));
var extracter = new ConversionsExtracter(dateRange, AdvertiserId);
var loader = new ConversionsLoader();
var extracterThread = extracter.Start();
var loaderThread = loader.Start(extracter);
extracterThread.Join();
loaderThr
我需要测试一个客户端服务器应用程序。我有一些端口上运行的服务器,需要创建大约2000个客户端连接服务器。为此,我尝试使用以下代码在c#应用程序中创建2000个线程
class Program
{
/// <summary>
/// Sample client code that makes gRPC calls to the server.
/// </summary>
public static void Main(string[] args)
{
for (int i = 0; i <= 2000; i