我目前正在Java中使用一个单独的线程,可能会用于许多不同的功能,我想知道是否有办法将实际函数调用的命令作为参数传递.这看起来像是:
class myWorkerThread implements Runnable
{
private (<String/whatever other type>) runCommand;
public myWorkerThread(<String/whatever other type> <my command>)
{
}
public void run()
{
//Actually run that command.
}
}
Run Code Online (Sandbox Code Playgroud)
我希望得到一个工具,它不会让我使用丑陋的switch case语句或类似的东西.我要求线程运行的不同函数有不同的参数,但我希望能够使用相同的线程运行它们.
跟进问题/链接到其他资源都很棒.
谢谢.
我目前正在尝试将我编写的CXX库链接到VTK,一个CMake制作的库 - 最终创建一个具有我的代码功能的共享库,并可以解析VTK中的符号.我需要共享最终结果,因为我需要在运行时用Java调用库.
我正在将一些代码从C++转换为C#,我需要了解如何处理这些行:
PDWORD rgb32_data = (PDWORD) malloc(640*480*4);
Run Code Online (Sandbox Code Playgroud)
据我所知,该PDWORD
类型代表一个无符号整数(32位).实现类似结构的C#策略是什么?
编辑:我发现我需要使用IntPtr来替换PDWORD,但IntPtr将保持单个值,而不是像数组中的许多值.有没有C#的建议?
EDIT2:Uint [] s对我不起作用 - 遗憾的是,我可以使用所有依赖项编译程序的唯一方法是当我输入IntPtr作为参数时,而不是IntPtr [].
谢谢.
编辑 - 我已经标记了解决方案,此外我还需要执行以下操作:
由于我需要一个IntPtr演员,我添加了这段代码
IntPtr rgb32_ptr;
GCHandle handle = GCHandle.Alloc(rgb32_data, GCHandleType.Pinned);
try
{
rgb32_ptr = handle.AddrOfPinnedObject();
}
finally
{
if (handle.IsAllocated)
{
handle.Free();
}
}
Run Code Online (Sandbox Code Playgroud)
得到一个IntPtr相同.
我试图找出这个错误的来源(我正在尝试使用PHP输出一些HTML).
$newLI = "<li id = $row['\"id\"'] style=\"padding-right: 20px; display:inline; border-right: 1px gray solid; margin: 0px; color: white;\">";
Run Code Online (Sandbox Code Playgroud)
最终给了我:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING in /homepages/31/d346239161/htdocs/Bloominate/alpha/getProfileData.php on line 23
Run Code Online (Sandbox Code Playgroud)
我无法弄清楚解析错误在哪里:(.