Конечная точка указана как url
, а не iam_url
, как у вас есть.
Это работает для меня -
const STTV1 = require('watson-developer-cloud/speech-to-text/v1');
let sttService = new STTV1({
url: url,
iam_apikey = apikey
});
Попробуйте использовать лямбда-выражение для захвата аргументов.
Thread standardTCPServerThread =
new Thread(
unused => startSocketServerAsThread(initializeMemberBalance, arg, 60000)
);
You need to wrap them into a single object.
Making a custom class to pass in your parameters is one option. You can also use an array or list of objects, and set all of your parameters in that.
Use the 'Task' pattern:
public class MyTask
{
string _a;
int _b;
int _c;
float _d;
public event EventHandler Finished;
public MyTask( string a, int b, int c, float d )
{
_a = a;
_b = b;
_c = c;
_d = d;
}
public void DoWork()
{
Thread t = new Thread(new ThreadStart(DoWorkCore));
t.Start();
}
private void DoWorkCore()
{
// do some stuff
OnFinished();
}
protected virtual void OnFinished()
{
// raise finished in a threadsafe way
}
}
You can't. Create an object that contain params you need, and pass is it. In the thread function cast the object back to its type.
Вы можете взять массив объектов и передать его в поток. Передайте
System.Threading.ParameterizedThreadStart(yourFunctionAddressWhichContailMultipleParameters)
в конструктор потока.
yourFunctionAddressWhichContailMultipleParameters(object[])
Вы уже установили все значения в objArray.
Вам необходимо abcThread.Start (objectArray)
You could curry the "work" function with a lambda expression:
public void StartThread()
{
// ...
Thread standardTCPServerThread = new Thread(
() => standardServerThread.Start(/* whatever arguments */));
standardTCPServerThread.Start();
}
Вот фрагмент кода, который использует подход с использованием массива объектов, упомянутый здесь пару раз.
...
string p1 = "Yada yada.";
long p2 = 4715821396025;
int p3 = 4096;
object args = new object[3] { p1, p2, p3 };
Thread b1 = new Thread(new ParameterizedThreadStart(worker));
b1.Start(args);
...
private void worker(object args)
{
Array argArray = new object[3];
argArray = (Array)args;
string p1 = (string)argArray.GetValue(0);
long p2 = (long)argArray.GetValue(1);
int p3 = (int)argArray.GetValue(2);
...
}>