Comments (4)
thank you
from clearscript.
Hi @Rison-Hub,
The only way to achieve that is to have the host and script implement a play/pause/exit protocol of some sort.
For example, the host could expose a property that the script periodically checks to determine whether to continue, await a continuation signal, or exit.
Good luck!
from clearscript.
Can you provide me with a simple demo for reference?
from clearscript.
Hi @Rison-Hub,
Can you provide me with a simple demo for reference?
Sure. Here's a class that provides basic pause/resume/terminate support:
public class ScriptControl {
private readonly ManualResetEventSlim _notPaused = new(true);
private bool _terminationRequested;
public void Pause() => _notPaused.Reset();
public void Resume() => _notPaused.Set();
public void Terminate() => _terminationRequested = true;
public bool CanContinue() {
if (_terminationRequested) return false;
_notPaused.Wait();
return true;
}
}
To use it, let's kick off a script execution thread:
var scriptControl = new ScriptControl();
var scriptThread = new Thread(() => {
using var engine = new V8ScriptEngine();
engine.AddHostType(typeof(Console));
engine.Script.canContinue = new Func<bool>(scriptControl.CanContinue);
engine.Script.sleep = new Action<int>(Thread.Sleep);
engine.Execute(@"
while (true) {
if (!canContinue()) break;
Console.WriteLine('Script running...');
sleep(500);
}
");
});
scriptThread.Start();
We can now control script execution as follows:
Thread.Sleep(2000);
scriptControl.Pause();
Console.WriteLine("Script paused for 5 seconds.");
Thread.Sleep(5000);
scriptControl.Resume();
Thread.Sleep(2000);
scriptControl.Terminate();
scriptThread.Join();
Console.WriteLine("Script terminated.");
This is just a simple example, but hopefully it gives you an idea of what's possible.
Cheers!
from clearscript.
Related Issues (20)
- Unable to initalize script engine due to pending script exception HOT 2
- I can't add memory.dll to visual studio 2019?
- Streams API? HOT 1
- ClearScriptV8.linux-x64.so not found in the Docker HOT 2
- ClearScriptV8.win-x86.dll and ClearScriptV8.win-x64.dll missing on Publish HOT 2
- Question: ScriptEngine.HostData HOT 4
- Question: try pattern from script HOT 2
- Behavior of the `MaxRuntimeHeapSize` property of `V8ScriptEngine` class has changed HOT 2
- Debugging ClearScript with Visual Studio Code HOT 1
- "RangeError: Array buffer allocation failed" when Executing "new Uint8Array()" HOT 2
- Allow configuration to limit the number of max statements to be executed HOT 13
- How to change the local timezone used by the engine's date functions HOT 4
- VBScript will be discontinued, can clear script be a solution? HOT 2
- Problem with ArrayBuffer bounds checking HOT 4
- Issue with calling JavaScript functions defined as function from ClearScript in C# HOT 3
- [FR]: Expose V8's CompileFunction (Along with the Rest of v8::ScriptCompiler) HOT 5
- Feature Request: Add the Deno engine. HOT 5
- ReadOnly ScriptMember still writable according to getOwnPropertyDescriptor HOT 2
- Runtime support appears incorrect HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from clearscript.