I’ve seen a lot of threads regarding using streamlit with multithreading
I’ve tried everything that I’ve seen
But nothing seems to work as expected
The latest threads suggest using add_script_run_ctx (which for some reason looks different in every version of streamlit), but it doesn’t seem to work for me
It seems like adding simple objects like subheader kind of work
But adding things like columns and metric does not
Using streamlit 1.10
One possible code I’ve tried
import streamlit as st
import threading
from streamlit.scriptrunner import add_script_run_ctx
stSystemStatsPlaceHolder = None
def update_system_stats():
global stSystemStatsPlaceHolder
with stSystemStatsPlaceHolder:
col1, col2, col3, col4, col5 = st.columns(5)
col1.metric("Memory", '1')
col2.metric("Swap", '2')
col3.metric("CPU", '3')
col4.metric("CPU Temp", '4')
col5 .metric("GPU Temp", '5')
stSystemStatsPlaceHolder = st.empty()
thread = threading.Thread(target=update_system_stats)
add_script_run_ctx(thread)
thread.start()